这有什么不对? 如果语句不在ajax中工作,但在控制台中工作?

我现在已经有一段时间了。 由于某种原因,我的密码字段没有通过ajax到达我的editaccount.php。 如果未禁用pass,请确认Jquery是否正确设置以将传递添加到要发送的变量。 我想确认所有其他字段是否发送。

似乎没有人知道对此的修复。 如果在控制台中使用alert()检查此if语句,那么它应该可以工作。 但是传递永远不会放入对象myData中。 为什么? 我怎样才能解决这个问题? 我知道密码选择是正确的。 如果我删除if语句,那么传递将被删除。

JQuery的:

$(document).on('submit', '#editaccount', function(event) { event.preventDefault(); myData = { contactname: $('input[name=contactname]').val(), business: $('input[name=business]').val(), email: $('input[name=email]').val(), code: $('input[name=code]').val(), phone: $('input[name=phone]').val(), priceband: $('input[name=priceband]').val(), address: $('input[name=address]').val(), active: $('input[name=active]').val(), mon: $('input[name=mon]').val(), tue: $('input[name=tue]').val(), wed: $('input[name=wed]').val(), thu: $('input[name=thu]').val(), fri: $('input[name=fri]').val(), sat: $('input[name=sat]').val(), sund: $('input[name=sund]').val(), adminname: $('input[name=adminname]').val(), accountid: $('input[name=accountid]').val(), isadmin: $('input[name=isadmin]').val(), }; var isDisabled = $('input[name=pass]').is(':disabled'); if (isDisabled == false) { myData.pass = $('input[name=pass]').val(); } $.ajax({ url: 'php/editaccount.php', type: "POST", data: myData, success: function(data) { if ($('input[name=isadmin]').val() == 1) { $('input[name=accountsearch]').val($('input[name=email]').val()); $('input[name=accountsearch]').submit(); } else { $('input[name=accountsearch]').val($('input[name=business]').val()); $('input[name=accountsearch]').submit(); } alert(data); } }); }); 

我认为如果禁用你需要使用.push(),这样你就可以阅读myData.pass

 var isDisabled = $('input[name=pass]').is(':disabled'); if (isDisabled == false) { myData.push('pass : '+$('input[name=pass]').val()); alert(myData.pass); } 

之后,您将需要使用Ajax发送数组到PHP脚本

这段代码的问题在于,如果isDisabled = false,你在线创建myData.pass变量,否则对象永远不会创建对象的pass变量,这里是解决方案:

 var isDisabled = $('input[name=pass]').is(':disabled'); if (isDisabled == false) { myData.pass = $('input[name=pass]').val(); }eles{ //here you que asign the value of pass to empty o to null myData.pass = ""; } 

这是完整的代码:

  $(document).on('submit', '#editaccount', function(event) { event.preventDefault(); myData = { contactname: $('input[name=contactname]').val(), business: $('input[name=business]').val(), email: $('input[name=email]').val(), code: $('input[name=code]').val(), phone: $('input[name=phone]').val(), priceband: $('input[name=priceband]').val(), address: $('input[name=address]').val(), active: $('input[name=active]').val(), mon: $('input[name=mon]').val(), tue: $('input[name=tue]').val(), wed: $('input[name=wed]').val(), thu: $('input[name=thu]').val(), fri: $('input[name=fri]').val(), sat: $('input[name=sat]').val(), sund: $('input[name=sund]').val(), adminname: $('input[name=adminname]').val(), accountid: $('input[name=accountid]').val(), isadmin: $('input[name=isadmin]').val(), }; var isDisabled = $('input[name=pass]').is(':disabled'); if (isDisabled == false) { myData.pass = $('input[name=pass]').val(); }eles{ //here you can asign the value of pass to empty o to null myData.pass = ""; } $.ajax({ url: 'php/editaccount.php', type: "POST", data: myData, success: function(data) { if ($('input[name=isadmin]').val() == 1) { $('input[name=accountsearch]').val($('input[name=email]').val()); $('input[name=accountsearch]').submit(); } else { $('input[name=accountsearch]').val($('input[name=business]').val()); $('input[name=accountsearch]').submit(); } alert(data); } }); });