我有这个代码
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答案 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
成为yes
或false
另外我建议你将记住的记录设置为true
和false
,这样更容易验证。
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
};