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