在页面加载后,所有复选框都保持未选中状态(如下图所示),我从java会话中获取value1文本并将其存储在JSON对象下,现在我将比较下面的value1文本页面与值1文本匹配我从会话中获取。如果找到匹配,则选中复选框,否则保持未选中状态。我在下面尝试,但它会检查所有方框..
<script type="text/javascript">
$.s1.proxy.contentReady(function() {
var sessionValue = <%= json %>; //loaded from java session
sessionValue.forEach(function(sessionValue) {
$("input:checkbox[name=myFormProperties]").each(function(){
var val = $(this).closest("tr").find("td:nth-child(2)").text().trim();
if(val!=null && val!=''){
if (sessionValue.startsWith(val)) {
alert("session and page value match found ");
$("input:checkbox[name=myFormProperties]").attr('checked', true); // this makes all the checkbox value true. How to make only //specific check box value true here
}
}
});
});
});
</script>
答案 0 :(得分:1)
那是因为你在所有名称为myFormProperties的复选框上设置它。
而不是$("input:checkbox[name=myFormProperties]").attr('checked', true);
(只是再次选中所有复选框),只需从每个循环中选择当前复选框
$(this).attr('checked',true);
答案 1 :(得分:0)
您正在使用代码选中所有复选框
$("input:checkbox[name=myFormProperties]").attr('checked', true);
要使用下面的值使用复选框
$("input[value='" + val + "']").prop('checked', true);