阻止在 jQuery 验证引擎之后提交

Preventing submission after jQuery Validation Engine

本文关键字:引擎 之后 提交 验证 jQuery      更新时间:2023-09-26

单击按钮后,希望阻止提交到本地存储,如果未填写任何必填字段。这两个函数都可以正常工作。只是试图防止LocalStorage.save()在发现必填字段未完成时命中$("#formID").validationEngine();

<form id="formID" name="myForm">    
 <input class="validate[required]" type="text" id="agree" name="agree"/>         
 <button type="submit" value="Save" id="Save" onclick="clicked();">Submit Survey</button>
</form>
<script type="text/javascript">   
  function clicked() {
        if (confirm('Are you sure you want to submit?')) {
           $("#formID").validationEngine();               
           my.LocalStorage.save();
        } else {
            return false;
        }
    }
 </script>  

从他们在 http://posabsolute.github.io/jQuery-Validation-Engine/的文档中:

驗證

验证表单或字段,相应地显示错误提示。 如果表单有效,则返回 true;如果表单包含错误,则返回 false

它对字段进行反转,在验证时返回 false,在错误时返回 true。

当将表单验证与 ajax 一起使用时,它返回未定义的 结果通过函数选项异步传递.onAjaxFormComplete

// form validation 
alert( $("#formID1").validationEngine('validate') );
// field validation 
alert( $("#emailInput").validationEngine('validate') );

因此,这会将您的代码更改为:

function clicked (e) 
{
    if ( confirm('Are you sure you want to submit?') ) 
       if ( $("#formID").validationEngine('validate') )
           my.LocalStorage.save();
    e.preventDefault();  
}

请注意,我添加了e作为参数,需要通过以下方式传递event

<button type="submit" value="Save" id="Save" onclick="clicked(event);">
    Submit Survey
</button>

从源代码中有一个函数validate()验证后返回 true/false

所以使用它

if( $("#formID1").validationEngine('validate'))
{
my.LocalStorage.save();
}

检查此 http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/