0

Javascriptでアプリケーションを正常に完了した後、jQueryをより使いやすくしようとしています。ただし、次のようにラジオボタンの値を取得しようとすると、次のようになります。

 // relavent declarations: 

var radio = $("[name='buttons']");  // 4 radio buttons
var val = '';
var score = 0;


for( var q in radio ) {
if (radio[q].checked)
    val = radio[q].val();
}
     if(val === correct) {
    score++;
}

私がやろうとしているのは、ストレートJavascriptで同等のものが次のようになるようにすることです。

for( var q in radio ) {
if (radio[q].checked)
    val = radio[q].value;
}
     if(val === correct) {
    score++;
}

Javascriptコンソールで「UncaughtTypeError:Object#has nomethod'val'」というエラーが表示され続けます。問題は何ですか。

4

5 に答える 5

1

これを試して

$('input:radio').each(function(){
   if($(this).is(':checked'))
     var value = $(this).val();
});
于 2013-03-22T01:18:41.140 に答える
1

radio[q]生のDOMノードオブジェクトが得られます。おそらく関連するjQueryオブジェクトが必要なので、試してみてくださいradio[q].eq(q)

参照:http ://api.jquery.com/eq/

于 2013-03-22T01:19:07.163 に答える
1

以下のコードを試してください:

$(":radio:checked").each(function(){
    val = $(this).val();
})
于 2013-03-22T01:19:17.007 に答える
0

あなたが望むと思う限り近い。

 $(document).ready(function() {
                var radio = $("input[type='radio']");
                for (var i in radio) {
                    i = parseInt(i);
                    var r = radio[i];
                    if ($(r).prop("checked") == true) {

                        console.log($(r).val());
                    }
                }

            })
 })

値の読み出しを追加

于 2013-03-22T01:34:07.127 に答える
0

私はあなたが答えとユーザーが正しいものをチェックした場合、彼はスコアを得る何かを書いていると思います

提案 1)すべてのチェック ボックスに同じ名前を付けて、1 つだけをチェックできるようにします。

 <input type="radio" name="Answer" />

提案 2)選択したチェックボックスの値を myForm から取得する

 $('input[name=radioName]:checked', '#myForm').val()
于 2013-03-22T01:23:55.440 に答える