Javascript 在jquery对象中使用变量

Javascript 在jquery对象中使用变量,javascript,jquery,Javascript,Jquery,我有这个密码 if($("input[name='staylogged']").is(":checked")){ var staylogged = "yes"; }else{ var staylogged = "false"; } var form_data = { username: $("#username").val(), password: $("#passw

我有这个密码

if($("input[name='staylogged']").is(":checked")){
        var staylogged = "yes";
        }else{
        var staylogged = "false";
        }

        var form_data = {
            username: $("#username").val(),
            password: $("#password").val(),
            staylogged
        };
但是form_数据中的var staylogged没有按预期工作,错误在哪里


我不知道如何在form_data中声明var staylogged

您的代码将
staylogged
的值插入代码中的位置。因此,您的代码基本上如下所示:

var form_data =  {
    username: $("#username").val(),
    password: $("#password").val(),
    true
};
这显然没有道理。您需要提供一个密钥:

var form_data = {
    username: $("#username").val(),
    password: $("#password").val(),
    staylogged: staylogged
};
对象文本需要键值对。键的名称不是从变量名推断出来的

 var form_data = {
     username: $("#username").val(),
     password: $("#password").val(),
     staylogged: staylogged
 };
这将导致
form\u date.staylogged
yes
false

另外,我建议您将staylogged设置为
true
false
,这样更容易验证

if($("input[name='staylogged']").is(":checked")){
    var staylogged = true;
} else {
    var staylogged = false;
}

是否只需要一个名为
staylogged
的字段,该字段的值与本地字段的值相同?如果是这样,那么您仍然需要像普通一样分配它:

var form_data = {
    username: $("#username").val(),
    password: $("#password").val(),
    staylogged: staylogged
};

您的staylogged变量超出范围。尝试在if语句之外声明
var staylogged
。你还需要给它一把钥匙

var staylogged = ""; // give it a default value
if($("input[name='staylogged']").is(":checked")){
    var staylogged = "yes";
} else {
    var staylogged = "false";
}

var form_data = {
    "username": $("#username").val(),
    "password": $("#password").val(),
    "staylogged": staylogged
};

不要多次重新声明
staylogged
变量。在给定范围内,变量只能声明一次。此外,在构建
表单_数据
变量时,请尝试编写有效的javascript:

var staylogged = 'false';
if($('input[name="staylogged"]').is(':checked')) {
    staylogged = 'yes';
}

var form_data = {
    username: $('#username').val(),
    password: $('#password').val(),
    staylogged: staylogged
};
或使用
的速记:操作员:

var staylogged = $('input[name="staylogged"]').is(':checked') ? 'yes' : 'false';
var form_data = {
    username: $('#username').val(),
    password: $('#password').val(),
    staylogged: staylogged
};

您的变量staylogged超出范围。将其声明(
var staylogged
)移到if语句之外。