preventDefault()提交表单

时间:2011-08-25 17:32:49

标签: jquery

好的,我对jquery和javascript一般都很新。我有一个表单,我想要它做的表单运行一个函数,以确保一切都在那里,所有变量都是正确的然后提交。我已将onclick值用于提交按钮,并使其运行使用preventDefault()的函数。我不确定我是否正确使用它但它似乎没有工作。这就是我所拥有的,当你点击提交时,即使if语句为false,它也只是提交。

function checkSubmitStatus() {
    $("#myform").submit(function(event){
        if( whatever==true) {
            event.preventDefault(); 
        }
    });
}

<input type="submit" name="submit" value="Submit"  onClick="checkSubmitStatus()">

谢谢!

6 个答案:

答案 0 :(得分:11)

通过将$("#myform").submit(...)放在checkSubmitStatus()函数中,在单击按钮并且表单已提交后,您将附加提交处理程序。试试这个:

<script type="text/javascript">
$(document).ready(function() {
  $("#myform").submit(function(event){
    if(whatever) { 
       event.preventDefault();  
    }  
  });
});
</script>

<form id="myform">
  <input type="submit" name="submit" value="Submit">
</form>

答案 1 :(得分:9)

更改

<input type="submit" name="submit" value="Submit"  onClick="checkSubmitStatus()">

<input type="submit" name="submit" value="Submit" >

并将您的javascript更改为

$("#myform").submit(function(event){
    if( whatever==true)
    {
        event.preventDefault(); 
    }
});

答案 2 :(得分:3)

您可以放弃checkSubmitStatus()功能。

$("#myform").submit(function(event){
  if(whatever == true) {
    event.preventDefault(); 
  }
});

同时放下这个:

onClick="checkSubmitStatus()"

答案 3 :(得分:1)

在onclick事件处理程序中,如果返回false,则表单将不会提交。试着这样做:

function checkSubmitStatus() {
   if(validationSuccess==true)
   {
      return true;
   }
   else
   {
      return false;
   }
}

<input type="submit" name="submit" value="Submit"  onClick="return checkSubmitStatus()">

答案 4 :(得分:1)

我会稍微重构一下......

function checkSubmitStatus() {
    if( whatever==true) {
          return false;
    }
    return true;
}

<input type="submit" name="submit" value="Submit"  onClick="return checkSubmitStatus()">

答案 5 :(得分:0)

let button = document.getElementById('submit');
button.addEventListener('click', function(event) {
    event.preventDefault();
    this.innerHTML = "Button clicked!";

});