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

时间:2015-06-07 13:38:57

标签: php jquery 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);
    }
});
});

2 个答案:

答案 0 :(得分:0)

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

var isDisabled = $('input[name=pass]').is(':disabled');

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

之后你需要Send array with Ajax to PHP script

答案 1 :(得分:0)

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

{{1}}

这是完整的代码:

{{1}}