这里出了什么问题?If语句在ajax中不起作用,但在控制台中起作用


What is wrong here? If statement not working in ajax, but works in console?

我已经研究了一段时间了。由于某种原因,我的密码字段没有通过ajax到达我的editaccount.php。请确认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脚本

这个代码的问题是您在线创建了myData。如果isDisabled = false则传递变量,否则对象永远不会为对象创建传递变量,这里是解决方案:

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);
        }
    });
    });