0

我试图在每次单击单选按钮时获取隐藏输入字段的值。我刚刚发布了一个 div。我有一个具有相同结构的多个 div。我已经成功获取了单选按钮的值,但我现在想获取隐藏输入的值。

<div class="QA">
    <h1> First Question</h1>
    <input type="radio" id="check" name="q" value="A">Options 1</input>
    <input type="radio" id="check" name="q" value="B">Options 2</input>
    <input type="radio" id="check" name="q" value="C">Options 3</input>
    <input type="radio" id="check" name="q" value="D">Options 4</input>
    <input type="hidden" id="result" value="B" />
    <br/>
    <div id="result"></div>
</div>       
<script>
    $(document).ready(function() {
        $("input:radio").change(function() {
            checkResult(this);
        }); 
    });
    function checkResult(el)
    {   
        $this=$(el).parent("div.QA");
        $this.slideUp();       
    }    
</script>
4

4 回答 4

2

也许您可以尝试完全删除隐藏的输入并使用 data-* 属性指示正确答案。就像是:

<div class="QA" data-answer="B">

然后在您的checkResult函数中,您可以使用检索此值

function checkResult(el)
{   
    $this=$(el).parent("div.QA");
    var answer = $this.data("answer");
    $this.slideUp();
}
于 2013-08-12T09:41:10.740 回答
1
function checkResult(el)
{   
    $this = $(el).parents("div.QA");
    $this.slideUp();       
    var x = $this.find('#result').val(); //find value of hidden field in parent div
}  

更改您的标记

id不应使用多个's。改为使用class

<input type="radio" id="check" name="q" value="A">Options 1</input>

<input type="radio" class="check" name="q" value="A">Options 1</input>
于 2013-08-12T09:33:48.627 回答
0

您可以通过它的 id 获取隐藏元素的值。

var hiddenValue = $("#result").val();

您可以在隐藏功能中使用它

function checkResult(el)
{
    var hiddenValue = $("#result").val();
    alert(hiddenValue);
}
于 2013-08-12T09:34:41.417 回答
0
var $hidden=$(el).siblings("input[type='hidden']");

顺便说一句,您有很多具有相同 ID 的元素,不好

于 2013-08-12T09:33:43.293 回答