2011-10-03 75 views
0

使用可变我有这样的代码在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 staylogged预期哪里是错误不起作用的变种?

我不知道如何申报VAR staylogged在form_data

+0

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

回答

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

你的代码将在那里你把它放在代码的staylogged值。所以你的代码基本上这样读取:

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

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

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

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

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

这将导致form_date.stayloggedyesfalse

而且我建议你设定staylogged到truefalse,它更容易验证。

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

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

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

不要多次重新声明staylogged变量。一个变量只能在给定的范围内声明一次。使用? :操作

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

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

或简写:还构建form_data可变尝试写信时有效的JavaScript

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