在jquery对象中使用变量

时间:2011-10-03 20:42:01

标签: javascript jquery

我有这个代码

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

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

但是form_data中的var记录不能正常工作,错误在哪里?

我不知道如何在form_data

中声明var staylogged

5 个答案:

答案 0 :(得分:8)

不要多次重新声明staylogged变量。变量应在给定范围内仅声明一次。另外,在构建form_data变量时,请尝试编写有效的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
};

答案 1 :(得分:3)

您的代码会将staylogged的值插入代码中。所以你的代码基本上是这样的:

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

这显然没有意义。您需要提供一个密钥:

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

对象文字需要键值对。密钥的名称不是从变量名称推断出来的。

答案 2 :(得分:3)

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

这将导致form_date.staylogged成为yesfalse

另外我建议你将记住的记录设置为truefalse,这样更容易验证。

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

答案 3 :(得分:1)

您是否只想要一个名为staylogged的字段与本地字段具有相同的值?如果是这样,那么你仍然需要像平常一样分配它:

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

答案 4 :(得分:1)

您的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
};