use*_*558 6 javascript validation checkbox onsubmit checked
我有一个带有一些动作和onsubmit值的表单,它通过提交输入标记提交.问题是它应该可以通过两个按钮提交,所以我为第二个按钮写了一个函数来改变表单的动作和onsubmit值:
<a href="javascript:submitCompare()" class="submit">Compare</a>
function submitCompare()
{
document.myForm.action = "anotherAction.php";
document.myForm.onsubmit = function() {return countChecked()};
document.myForm.submit();
}
function countChecked()
{
var n = $(".reports input:checked").length;
if (n >= 3 ) {
alert ('You must select less than 3 reports.');
return false;
}
else return true;
}
Run Code Online (Sandbox Code Playgroud)
单击Compare链接后,它会正确地将我发送到anotherAction.php页面,但即使我有两个以上选中的复选框(这是验证规则).有人可以帮助我使onsubmit功能正常工作吗?
document.myForm.onsubmit = function() {return countChecked()};
Run Code Online (Sandbox Code Playgroud)
应该
document.myForm.onsubmit = function( e ) {
e = e || window.event;
if ( !countChecked() ) {
e.preventDefault();
e.returnValue = false;
}
};
Run Code Online (Sandbox Code Playgroud)
在提交时返回 false 只会结束任何进一步的函数执行。如果您不希望它提交,您希望阻止默认提交行为。
在 中submitCompare(),您明确且无条件地调用
document.myForm.submit();
Run Code Online (Sandbox Code Playgroud)
你可能想要的是
if (countChecked()) {
document.myForm.submit();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16689 次 |
| 最近记录: |