即使表单validation失败,也会调用语义UI onSuccess回调

提交表单时,仍会调用onSuccess回调,即使validation失败也是如此。

为什么在表单无效时调用它?

示例: https : //jsfiddle.net/tL5xx6m9/7/

片段:

详细解释以满足提交的代码/文本比率:

在这段代码中,我有调用onSuccess事件时写入的文本。 通过单击提交,您将看到表单无效,并且onSuccess文本被写入。 在该文本下,通过调用$(".ui.form").form('is valid')

  $(".ui.form").form({ onSuccess: function(event, fields) { SubmitForm(fields); event.preventDefault(); } }); //Processes the forms data for a submission function SubmitForm(fields) { var valid = $(".ui.form").form('is valid'); $('#successText').html("On Success Called" + "
Is Valid: " + valid); console.log("Submitting Form"); console.log(fields); } $('.ui.form').form({ fields: { input1: { identifier: 'input1', rules: [{ type: "empty", prompt: "input1 - This field is required" }] }, input2: { identifier: 'input2', rules: [{ type: "empty", prompt: "input2 - This field is required" }] } } });
    

看来,通过两次单独的.form()方法调用,它会创建两个彼此独立执行的validation检查。 所以没有规则的第一次通话总是会成功的。

onSuccess事件移动到与validation规则相同的调用,并开始按预期工作。

 //Processes the forms data for a submission function SubmitForm(fields) { var valid = $(".ui.form").form('is valid'); $('#successText').html("On Success Called" + "
Is Valid: " + valid); console.log("Submitting Form"); console.log(fields); } $('.ui.form').form({ fields: { input1: { identifier: 'input1', rules: [{ type: "empty", prompt: "input1 - This field is required" }] }, input2: { identifier: 'input2', rules: [{ type: "empty", prompt: "input2 - This field is required" }] } }, onSuccess: function(event, fields) { SubmitForm(fields); event.preventDefault(); } });