Jquery Ajax调用onclick只发生一次

Jquery Ajax调用onclick只发生一次,jquery,ajax,forms,onclick,submit,Jquery,Ajax,Forms,Onclick,Submit,我想提交的页面中有一个from,我使用ajax调用: $(document).ready(function() { $("#password_change").click(function() { $.ajax({ type: 'POST', url: 'set_password.php', data: 'password=' + $('#password')

我想提交的页面中有一个from,我使用ajax调用:

 $(document).ready(function() {
    $("#password_change").click(function() {                    
        $.ajax({
            type: 'POST',
            url: 'set_password.php',
            data: 'password=' + $('#password').val(),
            success: function(data) {
                var obj = JSON.parse(data);              
                if(obj.success == '1') {    
                    $('#message').show();                            
                }else{
                    $('#fail_message').show();                            
                }
            }
        });
    });
 });
我的表格:

<form id="password_form" name="password_form" action="" method="POST" style="">
    <input type="password"  class="required" id="password" value="" />
</form>

第一次单击submit按钮时,我得到了正确的消息,一切似乎都很好。然后我再次单击submit按钮进行第二次操作,但是通过ajax调用发送的数据是空的,因此我得到了错误的ajax调用回复

有人知道为什么会这样吗


提前感谢

我想当按钮点击时,它也会被后置。你停止触发后回使用后onclick。尝试修改代码:

...
$("#password_change").click(function(e) {  
   e.preventDefault();
   $.ajax({
     ...
     ...
   });
});
...

您是否使用Chrome中的dev console等设备检查网络流量?发送ajax请求时是否有空的数据负载?在JSFIDLE中只使用您的代码可以很好地工作(请求可以与密码数据一起发送多次),因此它应该是其他东西-可能是您的PHP,或者页面上的其他JavaScript。您可以在第二次单击后检查$('#password').val()值吗,在ajax调用之前。我建议您删除整个
$.ajax
调用,只需在单击事件上执行
警报($(“#密码”).val())
,以确保它不是客户端JavaScript代码中的内容。如果警报没有触发多次,那么您至少知道这是一个JavaScript问题。此外,我在firebug中检查了post值,看起来不错。如果我在php文件中打印它们,它们看起来是空的。那么php中可能有问题?好的,我发现这是我的php文件中的一个问题,你是对的。检查我的更新。我已经在上面添加了e参数。单击(函数(e){…之前错过了。当您单击提交按钮时,您的页面是否正在重新加载(是否“闪烁”)?第一次单击后密码字段是否变为空,或者字符是否仍然存在?@novellino demo for
preventDefault