【发布时间】:2013-10-10 17:24:55
【问题描述】:
我编写了这个 js/jquery 脚本来检查表单中的所有复选框。它工作得很好,但这会检查页面上的所有复选框,而不管它们是什么表单包装器。
这里是函数
function toggleCheck(state)
{ var checkboxes = jQuery("form input:checkbox");
if(state==true){checkboxes.prop('checked',true); }
if(state==false){ checkboxes.prop('checked',false); }
}
用法
<a id="check" href="#" onclick="javascript:toggleCheck(true);" class="btn">Select All</a>
<a id="uncheck" href="#" onclick="javascript:toggleCheck(false);" class="btn">Deselect All</a>
注意这很好用,但我的问题是如果我有
<form action="myaction-page">//some form elements and checkboxes </form>
和
<form action="myaction-page-2">//some form elements and checkboxes </form>
然后我点击 form1 中的检查所有链接,所有复选框都会被选中,包括 form2 中的复选框。
有没有办法在不引入表单 ID 或名称的情况下将它们分开?..这是因为我在生产代码中广泛使用它,并且全部重写会很麻烦。
任何帮助将不胜感激。
P.S 值得注意的是,全选和全选都在两个表单中,并且两个表单都在同一个页面上。
【问题讨论】:
-
表格中是否有“全选”和“取消全选”复选框?
-
为什么会有 if 语句?
checkboxes.prop('checked',state); -
@JasonP 是的,全选和全选都在这两种形式中......他们应该根据他们所属的形式进行选择
-
@KevinB 除非状态未定义
-
@VyrenMedia 他说它们是不必要的。
if (someBool == true) { doSomething(true); } else if (someBool == false) { doSomething(false); }与doSomething(someBool);相同
标签: javascript jquery html checkbox