[英]JQuery: How to get selected radio button value?
如何將未選中的單選按鈕的值默認為0
?
我有以下HTML:
<input type="radio" name="myradiobutton" value="1" />1
<input type="radio" name="myradiobutton" value="2" />2
<input type="radio" name="myradiobutton" value="3" />3
我有以下代碼來獲取所選單選按鈕的值
var radio_button_value $('input[name=myradiobutton]:radio').click(function() {var value = $(this).val();});
問題是,我想在未選擇任何內容的情況下將radio_button_value
的值默認為0
。 我怎么做?
我基本上想做下面的pseduo代碼(但這不起作用)
var radio_button_value $('input[name=myradiobutton]:radio').click(function() {
if set
return $(this).val();
else
return 0;
});
UPDATE
我要求的東西似乎有些混亂。
當頁面加載時(在用戶甚至有機會選擇單選按鈕之前)我想要做的事情,我想要一個函數,它將為單選按鈕值返回0。
然后,一旦用戶選擇了單選按鈕,該SAME功能將返回單選按鈕的選定值。
合理?
$('input[name=myradiobutton]:radio:checked')
將獲得所選的單選按鈕$('input[name=myradiobutton]:radio:not(:checked)')
將獲得未選中的單選按鈕
使用它你可以做到這一點
$('input[name=myradiobutton]:radio:not(:checked)').val("0");
更新:閱讀更新后我想我明白你會想做這樣的事情
var myRadioValue;
function radioValue(jqRadioButton){
if (jqRadioButton.length) {
myRadioValue = jqRadioButton.val();
}
else {
myRadioValue = 0;
}
}
$(document).ready(function () {
$('input[name=myradiobutton]:radio').click(function () { //Hook the click event for selected elements
radioValue($('input[name=myradiobutton]:radio:checked'));
});
radioValue($('input[name=myradiobutton]:radio:checked')); //check for value on page load
});
使用:checked選擇器確定是否選擇了一個值:
function getRadioValue () {
if( $('input[name=myradiobutton]:radio:checked').length > 0 ) {
return $('input[name=myradiobutton]:radio:checked').val();
}
else {
return 0;
}
}
更新您可以隨時調用上面的函數來獲取單選按鈕的選定值。 您可以在加載時掛鈎,然后每當值隨以下事件發生變化時:
$(document).ready( function() {
// Value when you load the page for the first time
// Will return 0 the first time it's called
var radio_button_value = getRadioValue();
$('input[name=myradiobutton]:radio').click( function() {
// Will get the newly selected value
radio_button_value = getRadioValue();
});
}
它會在頁面加載后立即啟動。 您可以將其保留在某些事件中,例如按鈕單擊
$("#btn").click(function() {
var val= $('input[type="radio"]:checked').val();
});
jQuery("input:radio[name=myradiobutton]:checked").val();
我知道這是一個老問題,但我發現答案還不夠
最簡潔的方法是使用此代碼
$(".myRadio").click(function() {
alert($(this).val());
});
:-)
您的表單輸入數據應如下所示
<input type="radio" value="40000" name="pay" class="myRadio" />
<label for="40000">40000</label>
當頁面加載時,此Jquery方法返回默認值0
$('input[type="radio"]:checked').val();
要獲取所選單選按鈕的值,請使用RadioButtonName和包含RadioButton的Form Id。
$('input[name=radioName]:checked', '#myForm').val()
或僅限於
$('form input[type=radio]:checked').val();
可能最好的方法(特別是如果你想能夠發布一個默認值),就是有一個隱藏的單選按鈕,它以所選的方式開始並具有你的默認值。 所以像這樣:
<input type="radio" name="myradiobutton" value="0" checked="checked" style="display:none;" />
<input type="radio" name="myradiobutton" value="1" />1
<input type="radio" name="myradiobutton" value="2" />2
<input type="radio" name="myradiobutton" value="3" />3
如果你不能直接修改你的html,你可以通過腳本添加它:
$(function() {
$('input[name=myradiobutton]:radio:first').before('<input type="radio" name="myradiobutton" value="0" checked="checked" style="display:none;" />');
});
這是一個演示: http : //jsfiddle.net/Ender/LwPCv/
這項工作對我來說希望這會有所幫助:要獲得無線電選擇值,你必須使用比率名稱作為這樣的選擇器
selectedVal = $('input[name="radio_name"]:checked').val();
selectedVal將具有所需的值,根據您的值更改radio_name,在您的情況下,它將是“myradiobutton”
selectedVal = $('input[name="myradiobutton"]:checked').val();
如果存在未選擇某些內容的實例,您應該使用復選框。
根據W3C
如果共享相同控件名稱的集合中的單選按鈕最初“打開”,則用戶代理行為用於選擇哪個控件最初“打開”是未定義的。 注意。 由於現有實現以不同方式處理這種情況,因此當前規范與RFC 1866([RFC1866]第8.1.2.4節)不同,后者指出:
在任何時候,都會檢查一組中的一個單選按鈕。 如果一組單選按鈕中沒有一個元素指定“CHECKED”,則用戶代理必須首先檢查該集合的第一個單選按鈕。
由於用戶代理行為不同,作者應確保在每組單選按鈕中最初一個“開啟”。
對於單選按鈕,請使用以下腳本:
var myRadio = $('input[name=meme_wall_share]');
var checkedValue = myRadio.filter(':checked').val();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.