提交表单上的jquery preventdefault将不会被重新提交

问题描述 投票:1回答:5

我的代码出了问题。我有一个html表单,其中按钮在单击时提交但是会先进行一些检查,如果所有值都为true,则表单将被提交 - 但是在我的代码中,它不起作用。有没有人对此有所了解?

$("#button").click(function(e) {
  e.preventDefault();
  if ($(this).attr("at") == "1") { //some checking
    alert("Subsssmitted");
    $("form").submit(function() {
      alert("Submitted"); // it didn't passed the form didn't submitted
    });
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="">
  <!-- some code -->
  <button id="button" at="1">Submit</button>
</form>
javascript jquery html forms
5个回答
1
投票

$('#form').submit() 

$("form").submit(function(){
   alert("Submitted"); // it didn't passed the form didn't submitted
});

因为您只是定义事件处理程序但不触发提交事件。

如果可能的话

$("form").submit(function(){
   alert("Submitted"); // it didn't passed the form didn't submitted
});

在click事件处理程序之外


1
投票

你应该这样做:

$("#button").click(function(e){
    e.preventDefault();
    if($(this).attr("at") == "1"){ //some checking
        alert("Subsssmitted");
        // here you trigger event
        $("form").submit();
    }
});
// here you listen event
$("form").on("submit", function() {
    alert("submitted")
})

来吧https://jsfiddle.net/6hzt663q/


0
投票

$('#myForm').submit(function(event){
// do your validation success 
if(!success){
    event.preventDefault();
}
console.log('fsdfsdfds');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<form id="myForm" action="/google">
  <input type="text" id="name">
  <button id="button" at="1" type="submit">Submit"></button>
</form> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

0
投票

您的代码适合我,删除e.preventDefault()并尝试,

$("#button").click(function(e){
  if($(this).attr("at") == "1"){
     $("form").submit(function(){
        console.log('done');
     });
   }
});
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<form action="">
    <button id="button" at="1">Submit</button>
</form> 

0
投票

刚删除“e.preventDefault();”按钮点击事件,它将正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.