检查所有子项隐藏输入的“已检查”值

时间:2017-04-21 09:03:46

标签: javascript jquery html

ANSWER
stackoverflow.com/a/18676076/2240163

  

您不能将隐藏输入设为复选框,因此不会进行检查   属性。您可以使用type =“checkbox”并使用display:none隐藏它   如果你需要它是一个复选框,或者你可以简单地使用隐藏   使用0或1输入而不是模拟它。

我有一个容器,其中包含用于保存数据的隐藏字段。

    <Panel id="jointlist">
      <input type="hidden" id="jl_C_Head_back_conf" name="C_Head_back_conf" data-location="Head, back"/>
      <input type="hidden" id="jl_C_Head_back_text" name="C_Head_back_text"/>
      <input type="hidden" id="jl_C_Head_front_conf" name="C_Head_front_conf" data-location="Head, front"/>
      <input type="hidden" id="jl_C_Head_front_text" name="C_Head_front_text"/>
    </Panel>    

我试图找出哪个输入元素的checked值为true。

我试过

var jointlist = $("#jointlist");
var items = jointlist.find("input[id*='_conf']:checked");   

但这会返回父节点,其中包含children下列出的所有输入。图片中的项目是真的,还有一个真正的项目,但其余132个项目都是假的。 enter image description here

然后我试图遍历所有孩子以找到已检查的元素,所以我尝试了

    jointlist.each(function () {
        var curItem = $(this);
        var chldrn = curItem[0].children;
        for (i = 0; i < chldrn.length; i++) {
            console.log(chldrn[i].checked);
        }
    });

这将返回子元素的HTML。 所以我不知道如何访问孩子们的checked属性。

修改 这是for循环console.log(chldrn[i].checked);

的屏幕截图

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以先获取所有输入元素:

var inputs = document.getElementById('jointlist').getElementsByTagName('input');

然后循环并获取检查值,如

inputs[i].getAttribute('checked');

&#13;
&#13;
var inputs = document.getElementById('jointlist').getElementsByTagName('input');
var res;
for (var i = 0; i < inputs.length; i++) {
  if (inputs[i].getAttribute('checked') === 'true') {
    res = inputs[i];
  }
} 
console.log(res);
&#13;
<Panel id="jointlist">
    <input type="hidden" id="jl_C_Head_back_conf" name="C_Head_back_conf" data-location="Head, back" checked="true" />
    <input type="hidden" id="jl_C_Head_back_text" name="C_Head_back_text"/>
    <input type="hidden" id="jl_C_Head_front_conf" name="C_Head_front_conf" data-location="Head, front"/>
    <input type="hidden" id="jl_C_Head_front_text" name="C_Head_front_text"/>
</Panel> 
&#13;
&#13;
&#13;