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の は使用しないでください。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
var $hidden=$(el).siblings("input[type='hidden']");

ところで、同じIDの要素がたくさんありますが、良くありません

于 2013-08-12T09:33:43.293 に答える