Home > Article > Web Front-end > jQuery checkbox selection and get value
This time I will bring you jQuery's checkboxselect and get the value, jQuery checkbox selection and get the valueWhat are the precautions, the following is a practical case, Let’s take a look.
1. Checkbox selection
In jQuery, there are two common ways to select a checkbox:
$("#cb1").attr("checked","checked"); $("#cb1").attr("checked",true);
The corresponding jQuery function mainly completes three functions:
1. If the first check box is selected or unchecked, the following check boxes will be all Select or unselect all;
2. When all the check boxes below are selected, the first check box is set to be selected. When one of the check boxes below is not selected, Then the first check box is unchecked;
3. Pass the id value of the following check box to the Controller layer to form an id array, and then call the corresponding method (usually delete).
<script type="text/javascript"> function chgAll(t){//第一个复选框选中或取消选中,则下面的复选框为全选或取消全选; $("input[name='id']").attr('checked',t.checked);//改变name名为id的input标签内的复选框的checked属性 } function chg(){//当下面的复选框全部选中时,则将第一个复选框设置为选中,当下面的复选框中有一个没有被选中时,则第一个复选框取消选中; var ids = $.makeArray($("input[name='id']")); for(var i in ids){ if(ids[i].checked==false){//如果所有的复选框只要有一个未选中,则第一个复选框不会选中 $("input[name='ids']").attr('checked', false); return; } } $("input[name='ids']").attr('checked', true);//全部选中的情况下,则第一个复选框选中 } function deleteBatch(){//将下面的复选框的id值传递给Controller层,组成id数组,拼接url到controller层,调用批量删除方法(deleteBatch())方法 var ids = $.makeArray($("input[name='id']:checked"));//通过$.makeArray将id放在数组中 var url = '<%basePath%>/web/goodsList/deleteBatch';//此url指向controller层的deleteBatch方法,需要id属性 var flag = true; for(var i in ids){//遍历数组 if(i == 0){ url += "?id=" + ids[i].value;//第一个id属性前加?拼接 flag = false; } else { url += "&id=" + ids[i].value;//后面的id属性前加&拼接 flag = false; } } if(flag){//如果没有选中商品 alert("请选中商品!"); return; } if(confirm("确定删除记录吗?")){ window.location.href = url;//把拼接好的id数组传给页面 } } </script>
2. The corresponding list in the jsp page:
1. In the list, the check box in the header (No. (a check box) set the name, and call the chgAll(this) method to select all or none;
2. Set the name of the check box in the table, and call the chg() method To realize the second function above;
3. Call the deleteBatch() method when the form is submitted
<body> <form:form id="uuForm" modelAttribute="goods" action="<%basePath%>/web/goodsList/" method="post" >//form表单提交时调用deleteBatch()方法 <p> <input type="button" onclick="deleteBatch()" value="批量删除" /> </p> </form:form> <sys:message content="${message}" /> <table id="cTable" > <thead> <tr> <th><input type="checkbox" name="ids" onchange="chgAll(this)" /></th>//调用chgAll(this)方法来实现全选或全不选,此处的this指所有复选框对象 <th>商品编号</th> <th>商品标题</th> </tr> </thead> <tbody> <c:forEach items="${goods}" var="goods" varStatus="status"> <tr> <td><input type="checkbox" name="id" value="${goods.goodsId }" onchange="chg()"/></td>//调用chg()方法 <td>${webGoodsInfo.goodsNo}</td> <td>${webGoodsInfo.goodsTitle}</td> </tr> </c:forEach> </tbody> </table> </body>
3. Take a look at the controller code in spring MCV
@RequestMapping("deleteBatch")//对应jsp页面中的deleteBatch()请求 public String deleteBatch(Long[] id, RedirectAttributes redirectAttributes){//此处的id为页面中的id值,必须保持一直!!!! if(id !=null&&id.length!=0){ goodsService.deleteBatch(id); } return "redirect:"+Global.getAdminPath()+"/web/webGoodsInfo/?repage";//重定向到列表页面 } }
Look at the effect:
I believe you have mastered the method after reading the case in this article, more Please pay attention to other related articles on the php Chinese website!
Recommended reading:
How does the jquery plug-in print the page content
How does the jQuery running page trigger the click event by default
Detailed explanation of tree shape in layui about value passing
The above is the detailed content of jQuery checkbox selection and get value. For more information, please follow other related articles on the PHP Chinese website!