簡體   English   中英

JQuery:如何獲得選中的單選按鈕值?

[英]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.

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