在JavaScript中停止重定向

时间:2012-03-13 17:20:50

标签: javascript

我有一个函数可以在提交之前验证是否已填写某些字段(如果长度> 0)。如果提交失败,我根本不想重定向客户端。现在,我有以下内容:

function onSubmit()
{
  if (verify()) //This function will throw alert statements automatically
  {
     document.getElementById('my_form').submit();
     return void(0);
  }

  else
  {
     document.getElementById('my_form').action = null;
  }

}

然而,如果verify()返回true并不重要,我仍然重定向客户端并擦除她输入的字段。如果必填字段为空,如何将客户端保留在页面上? (我不想失去她目前填写的表格......)

另外,我不能使用光滑的JQuery库,因为它在某些旧版浏览器上不受支持。 (我想抓住最普通的观众。)

3 个答案:

答案 0 :(得分:4)

这就是我试图解决的问题:

document.getElementById('my_form').onsubmit = function( e ){
    var event = e || window.event;


    // function payload goes here.


    event.returnValue = false;
    if ( event.preventDefault ){ event.preventDefault(); }
    return false;
}

也可以与event delegation一起使用。

答案 1 :(得分:3)

将false返回给表单!

<form onsubmit="return onSubmit()">

function onSubmit()
{
  if (verify()) //This function will throw alert statements automatically
  {
     return true;
  }

  else
  {
     return false;
  }

}

答案 2 :(得分:1)

停止提交表单,从onSubmit返回false