我目前正在进行javascript验证,因此如果没有选中至少一个复选框,则不会对该表单进行汇总。它会向用户发送一条消息,以确保选择至少一个用户。
我现在要做的是阻止表单执行任何其他操作,在我单击提交按钮后似乎重新加载页面,如果它没有这样做会更好。
我目前的代码如下:
形式:
<form name="frm_multi_message_form" id="multi_message_form" style="margin-bottom: 0px;" method="post"><button style="border-style: none; margin: 5px 0 5px 0;" type="submit" action="" onClick="checkForm(this);" >Message multiple sitters</button>
</form>
我的Javascript:
function checkForm(form)
{
if (document.querySelector('form[id="multi_message_form"] input[name="username[]"]:checked')) {
document.frm_multi_message_form.action = "http://example.com/another-page/";
document.frm_multi_message_form.submit();
} else {
alert("You must select at least one sitter to message");
}
return false;
}
我没有抛出警告的问题,表单提交,我想知道如何启动preventDefault(或者这是不允许在javascript查询中?) ,除了显示的错误之外什么也没发生。
答案 0 :(得分:1)
您应该使用onClick="return checkForm(this);"
,如果验证错误,您的表单将无法提交
答案 1 :(得分:0)
您需要在表单提交上使用事件处理程序来阻止默认行为(提交):
document.getElementById('multi_message_form').addEventListener('submit', function(evt) {
evt.preventDefault();
})
答案 2 :(得分:0)
在验证后使用“return false”,如
$("#formId").submit(function()
{
if(someField == "")
{
$("#divId").text();
return false;
}
}