2017-06-04 112 views
-1

我有以下几点:.prop(“checked”,true)问题?

116 $.each(data.entries, function(id, item) { 
117  console.log($("input[type=checkbox][value=" + item + "]").is(":checked")); 
118  $("input[type=checkbox][value=" + item + "]").prop("checked", true); 
119  console.log($("input[type=checkbox][value=" + item + "]").is(":checked")); 
120 }) 

对于我的生活,我不能让我的复选框来检查:

swot-nav.js:117 false 
swot-nav.js:119 false 

这不起作用或者:

116 $.each(data.entries, function(id, item) { 
117  console.log($(":checkbox[value=" + item + "]").is(":checked")); 
118  $(":checkbox[value=" + item + "]").prop("checked", "true"); 
119  console.log($(":checkbox[value=" + item + "]").is(":checked")); 
120 }) 

(相同结果)

我能错过什么?

编辑:

这是发生在一个Ajax调用成功功能。

这是数据的样子:

data = {'label': 'D1- DC Test 1', 'details': '', 'type': 'D', 'entries': [20, 21, 22]

这里就是它的工作小提琴:https://jsfiddle.net/e3arwp7q/

必须有在我的代码不对劲更深。如果这看起来每个人都喜欢它应该工作,那么也许我应该看看其他地方。

+0

1:你需要'的console.log(项目)',看看是否它会得到正确的值..让我们知道'item'的输出是什么,并且是否有任何输入与这个值? –

+0

我这样做了,并且这些值与检查器中的值相匹配。如果多个复选框具有相同的值,这不起作用吗? –

+2

冒号。 '.is()'期望一个选择器和[':checked' selector](https://api.jquery.com/checked-selector/)需要冒号作为前缀运算符。目前,'.is('checked')'确定''是否是''元素。 –

回答

0

好吧,我想你通过你的checkbox的需要循环..接下来的代码将遍历只是unchecked输入

$.each(data.entries, function(id, item) { 
    $('input[type=checkbox]:not(:checked)').each(function(){ 
     $(this).filter('[value=' + item + ']').prop("checked", true); 
    }); 
}); 

注:上面的代码将工作,如果item匹配1-输出的checkbox 2- 值,如果你有一个以上的checkbox与 相同的值

的下面的代码将为所有checkbox输入

$.each(data.entries, function(id, item) { 
    $('input[type=checkbox]').each(function(){ 
     var checked_or_not = this.checked; 
     console.log(checked_or_not); 
     if(checked_or_not === false){ 
     $(this).filter('[value=' + item + ']').prop("checked", true); 
     } 
     console.log(checked_or_not); 
    }); 
}); 
+0

还有两个错误!这里一定还有别的事情要做。 –

+0

@AdamStarrh你用我的代码得到了什么'false'?我没有输出任何东西..我刚刚检查了您想要的值的未经检查的输入 –

+0

'console.log($(“:checkbox [value =”+ item +“]”)。is(“:checked”) )'在插入之前和之后报告false(就像我的例子中那样)。我不确定这是为什么。我可以让它在JSFiddle中工作,所以在我的界面的其他地方一定有问题。可能干扰的东西 –

0

问题是您将错误的参数传递给is方法。改为使用​​。

+0

即使用冒号 –

+0

它仍然报告错误,请解释你想达到的目的,因为你原来的问题有点不清楚。你是否试图检查复选框是否被选中?或者你想检查(打勾)复选框吗? –

+0

是的,只是想勾选框。控制台输出只是为了演示问题。 –

0

你应该使用工作:检查选择。

加冒号前检查

变化是( “选中”)是( “:勾选”)

相关问题