簡體   English   中英

使用jquery獲取選定的單選按鈕

[英]get the selected radio button using jquery

我有一個看起來像這樣的表格:

<input type="radio" id="answer0" name="answer0" value="1" />
<input type="radio" id="answer0" name="answer0" value="2" />
<input type="radio" id="answer0" name="answer0" value="3" />
<input type="radio" id="answer0" name="answer0" value="4" />

我想要的是獲取所選的單選按鈕,所以我使用下面的jQuery代碼。

var id = "#answer0";

var isChecked = $(id).prop('checked');

但是我只在選中第一個單選按鈕時得到結果。 如果我選擇第二個,第三個和第四個,那就沒有結果。 請幫忙。

哦對不起。 我像這樣在php中生成單選按鈕...

print '<input type="radio" class="answer'. $q . '" id="answer'. $q . '" name="answer'. $q . '"value="1"/>' . $row['answer1'] .'<br/>';
print '<input type="radio" class="answer'. $q . '" id="answer'. $q . '" name="answer'. $q . '"value="2"/>' . $row['answer2'] .'<br/>';
print '<input type="radio" class="answer'. $q . '" id="answer'. $q . '" name="answer'. $q . '"value="3"/>' . $row['answer3'] .'<br/>';
print '<input type="radio" class="answer'. $q . '" id="answer'. $q . '" name="answer'. $q . '"value="4"/>' . $row['answer4'] .'<br/>';

所以我確定id是唯一的。 我要做的是獲取answer0,answer1的所選單選按鈕值等等......到目前為止,我只能獲得第一個組值(answer0)。

我的jquery代碼:

for ( var i = 1; i <=items; i++ ) {
    var t = "answer" + i;

    if($('.' + t).prop('checked')){
        //alert(this.id);
        alert(t);
        correct++;
    }

    alert(correct);

    }}

元素的ID必須是唯一的。

為這些輸入提供類名,例如.radio。

<input type="radio" id="answer0" class='radio' name="answer0" value="1" />
<input type="radio" id="answer1" class='radio' name="answer0" value="2" />
<input type="radio" id="answer2" class='radio' name="answer0" value="3" />
<input type="radio" id="answer3" class='radio' name="answer0" value="4" />

然后:

$('.radio').each(function(){
if($(this).prop('checked')){alert(this.id);}
});

你可以在這里看到它的演示

編輯:你知道,但課程不必是獨一無二的。 在你的循環中,你沒有使用ID,你為每個元素使用不同的類名。 所以要么改變。 對於#或只是在演示中顯示它

如果要查看所有無線電的值,請刪除條件

$('.radio').each(function(){
alert(this.id+" "+this.value);
});

如果您只想查看所選收音機的值,則:

$('.radio').each(function(){
    if($(this).prop('checked')){alert(this.id+" "+this.value);}
});

我的建議

我認為你應該把它包裝成這樣的函數

function getSelectedRadioValue(){
    $('.radio').each(function(){
        if($(this).prop('checked')){return this.value;}
    });
}

你可以隨時打電話

if(getSelectedRadioValue()=='1'){
// make some magic
}else{
// more magic
}

嘗試這個:

$("input:radio[name=answer0]").click(function(){;
    alert($(this).val());
    });

ID應該是唯一的,為它們添加NON-UNIQUE類並執行以下操作:

$('input.class:checked').val()

或者如果你不想使用類,只使用你已經擁有的名稱(只需確保ID是唯一的 - 它必須是 ):

$('input[name=answer0]:checked').val()

編輯:既然您已編輯原始帖子,請嘗試以下操作:

print '<input type="radio" class="answer" id="answer'. $q . '" name="answer'. $q . '"value="1"/>' . $row['answer1'] .'<br/>';
print '<input type="radio" class="answer" id="answer'. $q . '" name="answer'. $q . '"value="2"/>' . $row['answer2'] .'<br/>';
print '<input type="radio" class="answer" id="answer'. $q . '" name="answer'. $q . '"value="3"/>' . $row['answer3'] .'<br/>';
print '<input type="radio" class="answer" id="answer'. $q . '" name="answer'. $q . '"value="4"/>' . $row['answer4'] .'<br/>';

然后獲取值只需執行此操作:

var value = $('input.answer:checked').val()

now value包含選定的值

它們都共享相同的ID,唯一的ID 必須是HTML。 而且,為所述ID硬編碼單個變量會更方便。

<input type="radio" id="answer0" name="answer0" value="1" />
<input type="radio" id="answer1" name="answer1" value="2" />
<input type="radio" id="answer2" name="answer2" value="3" />
<input type="radio" id="answer3" name="answer3" value="4" />

var id0 = "answer0";

var isChecked = $(id0).prop('checked');

等等。

使用類而不是id。

<input type="radio" class="answer0" name="answer0" value="1" />
<input type="radio" class="answer0" name="answer0" value="2" />
<input type="radio" class="answer0" name="answer0" value="3" />
<input type="radio" class="answer0" name="answer0" value="4" />

$(function(){
    $('.answer0').on('change', function(){
        alert($(this).val()); 
    });
});

這是一個小提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM