关于javascript:返回false不在jquery中的表单提交上工作

return false not working on form submit in jquery

1
2
3
4
5
6
7
8
9
function SaleProduct() {  
      var CusId=$('#CusId').val();
      $.get('customer-id.php?CusId='+CusId, function(data) {
         if(data==0){
           alert("Customer Id not valid.")
           return false;
         }
        });
     }
1
2
3
4
5
<form action="sales-edit-insert.php" method="post" onSubmit="return SaleProduct()">
  <input type="text" name="CusId" id="CusId"/>
  <!--Some input field here-->
  <input type="submit" value="Submit"/>
</form>

返回false; 或e.preventDefault(); 我提交表格时没有处理上述功能。 表格在显示警告后提交。


你的SaleProduct什么都不返回(实际上是undefined)。
您可以使用onsubmit属性中的return false;停止立即发送表单:

1
<form action="sales-edit-insert.php" method="post" onSubmit="SaleProduct(); return false;">

之后您可以手动提交表单:

1
2
3
4
5
6
7
8
9
10
11
12
function SaleProduct() {  
  var form = ...;
  var CusId=$('#CusId').val();
  $.get('customer-id.php?CusId='+CusId, function(data) {
    if(data==0){
      alert("Customer Id not valid.")
      return;
    }
    form.submit();
  });
  return false; // you can also move this statement to here from attribute
}

获取表单元素的最简单方法是将其提供到onsubmit

1
<form action="sales-edit-insert.php" method="post" onSubmit="return checkCustomer(this)">

和js:

1
2
3
4
function checkCustomer(form) {
  //code from above
  return false;
}


你已经在使用jQuery了,为什么还要使用onsubmit属性。 尝试

1
<form action="sales-edit-insert.php" method="post" id="sale-product-form">

1
2
3
4
5
6
7
8
9
10
11
12
13
jQuery(function($) {
  $('#sale-product-form').on('submit', function(e) {
    e.preventDefault()
    var form = this;
    $.get('customer-id.php', $(form).serialize(), function(data) {
      if (data == 0) {
        alert('Customer Id not valid.')
      } else {
        form.submit() // submit normally
      }
    })
  })
})