我对API进行了Ajax调用,该API在子集中检索汽车列表及其相关规范。这通过我的追加显示在div中。我取值default_spec_id并尝试与每辆车的id进行比较。如果它相等,则将var defaultSet设置为'checked'。
然而,它根本没有检索到准确的结果,而且汽车的默认规格是将检查状态设置为错误的复选框。
我的问题基本上是,我可以做这个逻辑吗?
$.getJSON("{{ url('api/checkcars')}}", { option: $(this).val() },
function(data) {
if ( data.success == true ) {
$.each(data.cars, function(key, value) {
var isDefault = data.default_spec_id;
if (isDefault === value.id) {
defaultset = 'checked';
}
$('#cars').append('<div><input type="radio" value="' + value.id +'" name="spec" ' + defaultset +'> ' + value.title +'</div>');
});
}
});
JSON
{
id: 7,
name: "renault clio",
default_spec_id: 8,
cars: [
{
id: 8,
name: "Spec name 1",
description: ""
}
},
{
id: 9,
name: "Spec name 2",
description: ""
}
}
}
]
}
答案 0 :(得分:1)
问题是您正在使用我们的defaultset
关键字创建名为var
的变量。
所以基本上它会将其分配给全球范围。
您的代码必须如下所示
$.getJSON("{{ url('api/checkcars')}}", { option: $(this).val() },
function(data) {
if ( data.success == true ) {
$.each(data.cars, function(key, value) {
var isDefault = data.default_spec_id;
var defaultset = "";
if (isDefault === value.id) {
defaultset = 'checked';
}
$('#cars').append('<div><input type="radio" value="' + value.id +'" name="spec" ' + defaultset +'> ' + value.title +'</div>');
});
}
});