首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较数组,然后根据结果采取行动

比较数组,然后根据结果采取行动
EN

Stack Overflow用户
提问于 2015-06-05 03:08:51
回答 2查看 49关注 0票数 0

我有一个表单,我正在处理一堆复选框。其中一些复选框是在加载文档之前通过php选中的。我正在尝试确定用户是否选中了尚未从php脚本中选中的复选框。

如果他们选中了其中一个未选中的复选框,我希望显示一个包含文本区的div,他们可以在其中添加更多详细信息。

到目前为止,我认为最好的方向是将所有复选框的值和状态存储到一个数组中。checked的状态存储为1,unchecked的状态存储为0。

每次单击复选框时,都会创建一个包含所有复选框的值和状态的新数组。然后将is与原始数组进行比较。如果在比较过程中发现了一个新的被选中的复选框,则显示带有文本区域的div。

我想知道是否有人知道如何做这样的事情,或者有没有更好的方法来完成我想要做的事情?

HTML:

代码语言:javascript
复制
<label><input type='checkbox' class='supress' name='suppressList[]' value='background' /></label>
<label><input type='checkbox' checked='checked' class='supress' name='suppressList[]' value='refsComp' /></label>
<label><input type='checkbox' class='supress' name='suppressList[]' value='I9' /></label>
<textarea id='details' name='additionalDetails'></textarea>

jQuery:

代码语言:javascript
复制
var status = $('input[type="checkbox"]').filter('.supress').map(function(){
var value = $(this).attr('value'); 
if($(this).is(':checked'))
     return { 'value':value, 'status' : 1}; 
else
    return { 'value':value, 'status' : 0};

});
EN

回答 2

Stack Overflow用户

发布于 2015-06-05 03:21:00

我认为,只要你不是在摆弄选中的属性,你就可以相信它只存在于默认的属性中。因此,$('[checked]:checked')将为您提供仍然选中的默认值,而$(':not([checked]):checked')将为您提供已选中但未默认的默认值。

http://jsfiddle.net/hxo9xg9o/

票数 0
EN

Stack Overflow用户

发布于 2015-06-05 03:25:20

一种简单的方法是为所有的checkbox和所需的change事件创建类

代码语言:javascript
复制
$(document).ready(function(){
$('.checkbox').change(function(event) {
    if ($(this).is(":checked")) {
         $(this).closest('tr').addClass('selected');
    }
    else {
         $(this).closest('tr').removeClass('selected');
    }
});    

});

请在fiddle http://jsfiddle.net/8gzn7ryh/中找到示例

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30652121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档