jsp页面根据控制器传递的值来选中checkbox

时间:2020-03-12 15:26:43 类型:JAVA
字号:    

jsp页面根据控制器传递的值来选中checkbox

比如控制器传递:

model.addAttribute("student", student);

student.hobby = "登山,羽毛球,打牌";


jsp页面判断然后选中:

方法一: 

使用jquery:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<label>爱好:</label>
<input type="checkbox" name="hobby" value="游泳">游泳
<input type="checkbox" name="hobby" value="跑步">跑步
<input type="checkbox" name="hobby" value="登山">登山
<input type="checkbox" name="hobby" value="羽毛球">羽毛球
<input type="checkbox" name="hobby" value="打牌">打牌
 <script>
    $(document).ready(function(){
    var hobby = '${student.hobby}';
    var hobby_a = hobby.split(",");
    console.log(hobby_a);
    for(var i=0; i < hobby_a.length; i++){
        $("input[name='hobby'][value='"+hobby_a[i]+"']").prop("checked",true);
    }
    })
</script>

方法二:

使用JSTL的fn:contains()函数

注意:搜索和被搜索的字符串后都加 ","; 

避免: 被搜索字符中含  "羽毛球", 结果 无论搜索 "羽毛" 或者 "羽毛球",结果都找到

1
2
3
4
5
6
7
 <label>爱好:</label>
 <c:set var="hobbys" value="${student.hobby},"/>
 <input type="checkbox" name="hobby" value="游泳" <c:if test="${fn:contains(hobbys, '游泳,')}">checked</c:if>>游泳
 <input type="checkbox" name="hobby" value="跑步" <c:if test="${fn:contains(hobbys, '跑步,')}">checked</c:if>>跑步
 <input type="checkbox" name="hobby" value="登山" <c:if test="${fn:contains(hobbys, '登山,')}">checked</c:if>>登山
 <input type="checkbox" name="hobby" value="羽毛球" <c:if test="${fn:contains(hobbys, '羽毛球,')}">checked</c:if>>羽毛球
 <input type="checkbox" name="hobby" value="打牌" <c:if test="${fn:contains(hobbys, '打牌,')}">checked</c:if>>打牌


<