使用Jquery在页面加载时有条件地选中该框

时间:2017-09-27 07:59:37

标签: javascript jquery html

在页面加载后,所有复选框都保持未选中状态(如下图所示),我从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> 

如果复选框为true,则所选值将作为复选框旁边的链接显示,如图所示。 Check Boxes

2 个答案:

答案 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);