Javascript 防止在jQuery验证引擎之后提交
单击按钮后,希望在未填写任何必填字段时阻止提交到本地存储。这两种功能都能正常工作。只是试图阻止Javascript 防止在jQuery验证引擎之后提交,javascript,jquery,html,validation,Javascript,Jquery,Html,Validation,单击按钮后,希望在未填写任何必填字段时阻止提交到本地存储。这两种功能都能正常工作。只是试图阻止LocalStorage.save()点击if$(“#formID”).validationEngine()查找未完成的必填字段 <form id="formID" name="myForm"> <input class="validate[required]" type="text" id="agree" name="agree"/> <b
LocalStorage.save()
点击if$(“#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>
提交调查
函数单击(){
如果(确认('您确定要提交吗?')){
$(“#formID”).validationEngine();
my.LocalStorage.save();
}否则{
返回false;
}
}
中有一个函数validate()
,它在验证后返回true/false
所以使用它
if( $("#formID1").validationEngine('validate'))
{
my.LocalStorage.save();
}
从他们的文档中检查此项,网址为:
验证
验证表单或字段,并相应地显示错误提示
如果窗体验证,则返回true;如果窗体包含错误,则返回false
对于字段,它是反向的,验证时返回false,错误时返回true
在ajax中使用表单验证时,它返回未定义的
结果通过function options.onAjaxFormComplete异步传递
因此,这会将您的代码更改为:
function clicked (e)
{
if ( confirm('Are you sure you want to submit?') )
if ( $("#formID").validationEngine('validate') )
my.LocalStorage.save();
e.preventDefault();
}
请注意,我添加了e
,作为需要通过以下方式传递事件的参数:
<button type="submit" value="Save" id="Save" onclick="clicked(event);">
Submit Survey
</button>
提交调查
validationEngine()
是否返回通过/失败布尔值?我相信是这样,但不能完全确定@Scott没有,但是validationEngine('validate')
doesneither函数似乎正在运行。只需在js确认后重新加载页面可能是因为您没有将e
传递给函数并使用e.preventDefault()
。我更新了代码。我认为这应该行得通。你必须将onclick=“clicked();”
更新为onclick=“clicked(e);“
我想也是。现在它甚至还没有到达js确认。onclick=中没有e与以前一样。尝试将onclick=“clicked(e);”
更改为onclick=“clicked(event);
Sweet…很抱歉。在使用jQuery这么长时间之后,我已经很久没有在标记中连接事件了。哈哈!
<button type="submit" value="Save" id="Save" onclick="clicked(event);">
Submit Survey
</button>