jQuery验证:为什么提交按钮必须点击两次在我的Rails应用程序

jQuery validation: why submit button must be clicked twice in my Rails app?

本文关键字:两次 应用程序 Rails 我的 为什么 验证 提交 按钮 jQuery      更新时间:2023-09-26

有两个类似的问题1和2,但他们通过ajax提交表单,在我的Rails应用程序中,我不想使用ajax加载并编写以下代码:

<% content_for :javascript do %>
$("#new_answer_on_<%= _activity_parent_id %>").validate({
    onsubmit: function(){
        CKEditorUpdate();
        return true;
    },  
    errorClass: "my-error-class",
    rules: {
        "answerswer[content]": {required: true, minlength: 20}
    }
});
function CKEditorUpdate(){
for(instance in CKEDITOR.instances)
   CKEDITOR.instances[instance].updateElement();
}
<% end %>

textarea的值为空时,上面的代码可以警告错误消息,但是当有可用的文本时:当我第一次单击提交按钮时,我也会收到警告错误消息,直到我第二次单击它,它才会将内容提交到服务器。我不知道为什么?我该怎么做才能减少额外的点击?提前感谢!

通过将onsubmit选项设置为函数,可能已经破坏了正常的插件行为。.validate()方法中的onsubmit选项只能接受布尔值false作为参数,而不能接受自定义函数。通过将其设置为false,您将在单击submit按钮时禁用验证触发器。根据文档,"布尔值true不是有效值"(已经是默认行为),也不能将其设置为自定义函数。

查看文档,为您的CK Editor Update函数选择适当的回调选项。