javascript - 在 jQuery 中获取最接近元素的形式

标签 javascript jquery html checkbox

我写了这个 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 值得注意的是,全选和取消全选都在两个表单中,并且两个表单都在同一页面上。

最佳答案

假设您的选择/取消选择链接在表单内,请执行以下操作:

function toggleCheck(state,elem) {
    jQuery(elem).closest("form").find("input:checkbox").prop('checked', state);
}

并将您的链接 JS 更改为(传递适当的 true/false 参数):

onclick="javascript:toggleCheck(false,this);"

jsFiddle example

关于javascript - 在 jQuery 中获取最接近元素的形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19168919/

相关文章:

javascript - 单击图像时jQuery shuffle div

grails - grails将div中的文本获取到 Controller

java - 如何在java servlet中获取客户端MAC地址?

javascript - ng-repeat 不更新 html

jQuery Mobile 默认停止文件上传?

javascript - 根据 iFrame 内容自定义自己的页面?

javascript - 从 $(document).ready 外部调用 $(document).ready 中定义的函数

javascript - 从 JavaScript 中的日期减去天、月、年

jquery - 手机间隙 : Cannot multiple SQL request in same page

jquery - 动画 div 不会隐藏在父项下