停止页面在验证失败时重新加载

Stop page from reloading on failed validation

我目前正在进行 javascript 验证,因此如果没有至少一个复选框被 select 编辑,该表单将不会被提交。它将向用户抛出一条消息,以确保 select 至少有一个用户。

我现在想做的是阻止表单做任何其他事情,它似乎在我点击提交按钮后重新加载页面,如果它不这样做会更好。

我现在的代码如下:

表格:

 <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 查询中是不允许的吗??)如果我可以,所以除了显示错误之外什么也没发生。

您应该使用 onClick="return checkForm(this);",如果验证错误,您的表单将不会被提交

您需要在表单提交上使用事件处理程序来防止默认行为(提交):

document.getElementById('multi_message_form').addEventListener('submit', function(evt) {
    evt.preventDefault();
})

验证后使用"return false",如

$("#formId").submit(function()
{
  if(someField == "")
   {
     $("#divId").text();
      return false;
   }
}