2017-04-21 86 views
0

ANSWER
stackoverflow.com/a/18676076/2240163检查“检查”所有儿童的价值隐藏输入

你不能有隐藏的输入是一个复选框,所以不会有检查 属性。您可以使用type =“复选框”并使用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

你不看'length'财产看到它__0__和隐藏的元素没有与工作[':checked'选择(https://api.jquery.com/checked -selector /)所以它返回正确的 – Satpal

+1

其中是复选框?它类型=“隐藏”不是类型=“复选框” –

+0

也是你试图得到':检查'但没有元素 –

回答

1

你可以先获取所有输入元素:然后循环

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

通过,并得到检查值像

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

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);
<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>

+0

对不起,但看看我添加的最后一个截图。当我登录'inputs'时,我会看到相同的窗口。然后当我输入[i] .attributes时出现134个未定义的值。检查' – morne

+0

@morne看到编辑答案 – FrankCamara

+0

似乎是不可能的这样。在这里看到:http://stackoverflow.com/a/18676076/2240163 – morne