在jQuery Validation Engine之后阻止提交

时间:2013-11-15 15:45:24

标签: javascript jquery html5 validation

单击按钮后,如果未填写任何必填字段,则希望阻止提交到本地存储。两种功能都能正常工作如果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>  

2 个答案:

答案 0 :(得分:3)

source code开始,有一个函数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/

答案 1 :(得分:3)

来自http://posabsolute.github.io/jQuery-Validation-Engine/的文档:

  

验证

     


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

     

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

     

使用带有ajax的表单验证时,它会返回 undefined ,.   结果通过函数 options.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>