在哪里使用preventDefault();在jquery中停止提交表单数据

时间:2016-01-18 15:44:52

标签: javascript php jquery forms

我正在尝试使用jquery向php提交表单数据。我不想默认提交。代码工作正常。我不知道在哪里使用event.preventDefault();

下面是我的jquery代码

<script>
 $(function () {
             $("#submit").click(function () {
                var password = $("#password").val();
                var confirmPassword = $("#confirm_password").val();
                var dataString='password='+ password + 'confirmPassword='+ confirmPassword;
                if (password != confirmPassword) {
                    alert("Passwords and Confirm Password Should match.");
                    return false;
                }

                else{

                $.ajax({
        type: "POST",
        url: "update-password.php",
        data: dataString,
        success: function(result){
            alert(result)

        }
      });


     }

   });

});

</script>  

1 个答案:

答案 0 :(得分:3)

请勿使用click事件来控制表单提交。它被键盘表单提交绕过!始终使用submit事件。

当您通过Ajax提交表单时,您可以使用e.preventDefault()

立即停止提交

e.g。

$(function() {
 $("form").submit(function(e) {
   e.preventDefault();
   var password = $("#password").val();
   var confirmPassword = $("#confirm_password").val();
   var dataString = 'password=' + password + 'confirmPassword=' + confirmPassword;
   if (password != confirmPassword) {
     alert("Passwords and Confirm Password Should match.");
   } else {
     $.ajax({
       type: "POST",
       url: "update-password.php",
       data: dataString,
       success: function(result) {
         alert(result)
       }
     });
   }
 });
});

注意:由于您没有对提交做任何特别的事情,除非您需要,否则您可能使用Ajax。只需有条件地返回truefalse

返回false与e.preventDefault() e.stopPropagation()相同。

e.g。

$(function() {
 $("form").submit(function() {
   var password = $("#password").val();
   var confirmPassword = $("#confirm_password").val();
   var dataString = 'password=' + password + 'confirmPassword=' + confirmPassword;
   if (password != confirmPassword) {
     alert("Passwords and Confirm Password Should match.");
     return false
   }
 });
});

一般建议:请勿使用alert与用户进行互动。而是在页面上显示验证消息。