Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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_Forms_Jquery Validate - Fatal编程技术网

Javascript 如何使用jquery验证阻止通过菜单链接进行导航(如果表单无效)

Javascript 如何使用jquery验证阻止通过菜单链接进行导航(如果表单无效),javascript,jquery,forms,jquery-validate,Javascript,Jquery,Forms,Jquery Validate,我有一张表格: <form id="myform" method="post" action="www.wherever.com/page2"> <div class="question"> <label for="q1">What is your name?</label> <input id="q1" name="q1" size="10" maxlength="10"/> </div> <input ty

我有一张表格:

<form id="myform" method="post" action="www.wherever.com/page2">

<div class="question">
 <label for="q1">What is your name?</label>
 <input id="q1" name="q1" size="10" maxlength="10"/>
</div>

<input type="submit" value="Continue" />

</form>
我还有一个侧栏菜单,允许用户在表单中跳转(这是一个多页表单,每个页面在此菜单中都有一个链接)

<div id="leftmenu" class="leftmenu">
<ul id="sidebarmenu1">
<li><a href="?page=introduction">Page 1</a></li>
<li><a href="?page=introduction-2">Page 2</a></li>
<li><a href="?page=survey-2">I: Page 3</a></li>
</ul>
</div>
我可以看到,当这些点击发生时,验证错误会起作用,但浏览器仍然会离开页面——这与通过“继续”按钮提交表单时不同

我如何调整它,使jquery验证器阻止这些链接工作


谢谢。

发生这种情况是因为锚定标记的默认操作

表单被提交,但由于默认行为,它被重定向到不同的页面

不要将单击事件添加到
#leftmenu
,而是将其添加到锚点,并确保停止默认操作

$('#leftmenu a').on('click',function(e) {

    // Prevents the default action of
    // redirecting to the page specified.
    e.preventDefault();
    // Submit the form which will validate
    $('#myform').submit();
});

太棒了-这很管用,感谢您以帮助我了解更多的方式解释它:)
$('#leftmenu').click(function() {  
    $('#myform').submit();
});
$('#leftmenu a').on('click',function(e) {

    // Prevents the default action of
    // redirecting to the page specified.
    e.preventDefault();
    // Submit the form which will validate
    $('#myform').submit();
});