在已选中的复选框上方查找隐藏字段值

时间:2013-09-16 12:44:45

标签: javascript jquery

我试图将隐藏的输入字段值返回到选中的复选框上方。正如我现在发现的值undefined

这就是我的尝试。

var checkedTopics = document.getElementsByName("chkRelatedTopics");
for (var i = 0; i < checkedTopics.length; i++) {
    if (checkedTopics[i].checked) {
        var uniqueKeyTopic = $(this).parent().
                       find("input[name=hidTopicsDomain]").val();
        console.log(uniqueKeyTopic);
    }

}

这是标记

{{each Items}}
                <tr>

                    <td>
                        <input type='hidden' 
                              name='hidTopicsDomain' value='${DomainObjectKey}'/>
                        <input type='checkbox' 
                                     name='chkRelatedTopics' value='${subject}'/>
                    </td>
                    <td><label id='labRelatedTopicDisplay'>${subject}</label>
                </tr>

            {{/each}}

如何检索此隐藏的input field值?

由于

3 个答案:

答案 0 :(得分:1)

你不能在for循环中使用它,使用.each()并使用兄弟姐妹来查找输入

var checkedTopics = document.getElementsByName("chkRelatedTopics");
$(checkedTopics).each(function(){
    if (this.checked) {
        var uniqueKeyTopic = $(this).siblings("input[name=hidTopicsDomain]").val();
        console.log(uniqueKeyTopic);
    }
});

答案 1 :(得分:1)

试试这个:

$('input[type=checkbox]:checked').each(function(){
$(this).prev('input[name=hidTopicsDomain]').val();
});

或者如果您想控制已选中和未选中,请使用此选项:

 $('input[type=checkbox]').each(function(){
   if($(this).is(':checked')){
   //perform something if checked
   }
   else{
   //perform something if not checked.
   }
    });

答案 2 :(得分:1)

如果这有帮助,请检查以下内容。

http://jsfiddle.net/sandeep605085/28peQ/2/

html:
<table>
<tr>
    <td>
        <input type='hidden' name='hidTopicsDomain' value='HiddenFieldValue1'/>
        <input type='checkbox' checked name='chkRelatedTopics' value='checkbox1'/>
    </td>
    <td>
        <label id='labRelatedTopicDisplay'>label1</label>
    </td>
</tr>
<tr>
    <td>
        <input type='hidden' name='hidTopicsDomain' value='HiddenFieldValue2' />
        <input type='checkbox' checked name='chkRelatedTopics' value='checkbox2'/>
    </td>
    <td>
        <label id='labRelatedTopicDisplay'>label2</label>
    </td>
</tr>
<tr>
    <td>
        <input type='hidden' name='hidTopicsDomain' value='HiddenFieldValue3'/>
        <input type='checkbox' name='chkRelatedTopics' value='checkbox3' />
    </td>
    <td>
        <label id='labRelatedTopicDisplay'>label3</label>
    </td>
</tr>
<tr>
    <td>
        <input type='button' id='buttonclick' value='Click to Test' />
        </td>
    </tr>
    </table>


js:

$('#buttonclick').click(function(){
    var checkedTopics = $('input[name="chkRelatedTopics"]');

    checkedTopics.each(function(){

        if ($(this).is(':checked')) {
            var uniqueKeyTopic = $(this).prev().val();
            alert(uniqueKeyTopic);
        }
    });
});

感谢。