ajax复选框调用

时间:2012-02-21 07:39:51

标签: jquery ajax json

如果返回某个值,我试图获取一个ajax请求来勾选一个框。

基本上我有以下代码:

     for(var id in data) {        
              $(id).val( data[id] );
              if($(newsletter).val( data[newsletter])) {

                       $('#newsletter').prop('checked', true);

              }
     }

现在我已经尝试了以下代码而没有骰子。

for(var id in data) {        
              $(id).val( data[id] );
              if($(newsletter).val( data[newsletter] == 1)) {

                       $('#newsletter').prop('checked', true);

              }
     }

这将勾选任何返回的结果的复选框,但如果值为1,我希望它然后选中该框,如果返回另一个值,我希望它不被勾选。

如果我做错了,请告诉我,因为我不熟悉jQuery和stackoverflow。

2 个答案:

答案 0 :(得分:0)

也许这可行:if($(newsletter).val() == 1... 或:if(data[newsletter] == 1)...

似乎你有一个缺失的任务: 也许你的意思是var newsletter = $(id).val( data[id] );我无法理解。请解释一下,如何宣布新闻通讯。

答案 1 :(得分:0)

我将假设data是通过AJAX返回的对象,data[newsletter]是访问该对象的某些属性的有效方法,您要检查该对象的值。

如果是这样,那么以下内容应该有效:

if (data[newsletter] === 1) {
    $('#newsletter').prop('checked', true);
}

此外,代码if($(newsletter).val( data[newsletter] == 1)) {设置检查任何值的原因是因为您使用if实际测试的是{{>>返回值来自{ {3}}调用,这是一个jQuery对象,总是会被评估为true,即使没有与选择器匹配的元素

Protip:如果要检查jQuery选择器是否与任何元素匹配,请改为测试.length属性。

e.g。

if ($('.my_selector:eq(0)').length) {
     alert('Found one!');
}