Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止在jQuery验证引擎之后提交_Javascript_Jquery_Html_Validation - Fatal编程技术网

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>