2013-07-29 120 views
0

上午使用下面的代碼獲取無線電按鈕值,但沒有得到。我需要得到這個單選按鈕的價值。請幫助我,謝謝如何獲得單選按鈕值

<input type="radio" id="high" name="high" value="Y" /> 
<label> Y </label>&nbsp;&nbsp;&nbsp;&nbsp; 
<input type="radio" id="high" name="high" value="N"/> 
<label> N </label> 

submitHandler: function() { 
    var form_data = { 
     state: $("#state").val(), 
     fiscal_yr: $("#fiscal_yr").val(), 
     high: $("#high").val(), 
     date_biennial_budget: $("#date_biennial_budget").val(), 
     // password: $("#password").val(), 
     is_ajax: 1 

    }; 
    $.ajax({ 
     cache: false, 
     type: "POST", 
     url: '<?php echo base_url();?>survey/actual_budget', 
     data: form_data, 
     success: function (response) { 
      if (response != 'failed') { 
       $("#content").load("<?php echo base_url().'survey/actual_budget' ?>"); 
      } 
     } 
    }); 
} 
}); 
+1

ID應該是唯一的,使用類,如果你想選擇多個元素這樣的。 – godfrzero

回答

0
For getting selected radio button value use following in jquery: 
var value=$("input[type=radio]:checked").val(); 
or 
var value=$('input[name=radiobuttonname]:checked').val() 

So, your code will be like this : 
<input type="radio" id="high" name="high" value="Y" /><label> Y </label>&nbsp;&nbsp;&nbsp;&nbsp; 
     <input type="radio" id="high" name="high" value="N"/><label> N </label> 

     submitHandler: function() { 
     var form_data = { 
      state: $("#state").val(), 
      fiscal_yr: $("#fiscal_yr").val(), 
      high: $("input[type=radio]:checked").val(), 
      //high: $("input[name=high]:checked").val(), 
      date_biennial_budget: $("#date_biennial_budget").val(), 
      //password: $("#password").val(), 
      is_ajax: 1 

     }; 
     $.ajax({ 
      cache : false, 
      type: "POST", 
      url: '<?php echo base_url();?>survey/actual_budget', 
      data: form_data, 
      success: function(response) 
      { 
       if (response != 'failed') { 
        $("#content").load("<?php echo base_url().'survey/actual_budget' ?>"); 
       } 
      } 
     }); 
    } 
    }); 
0

將您的ID更改爲類和使用類選擇器。

<input type="radio" class="high" name="high" value="Y" /><label> Y </label>&nbsp;&nbsp;&nbsp;&nbsp; 
<input type="radio" class="high" name="high" value="N"/><label> N </label> 


... 
high:$('input[name="high"]:checked').val(); 
... 

注意:ID應始終是唯一的。

或者你可以serialzie形式並將其作爲對象

$.ajax({ 
    cache : false, 
    type: "POST", 
    url: '<?php echo base_url();?>survey/actual_budget', 
    data: $('#formID').serialize(), 

,你可以採取公佈值隨..

$this->input->post('inputName'); 
+0

它不起作用,如果你想發送表單的所有值作爲發佈數據,那麼它只取值「Y」 – user2412936

+0

..然後使用serialize()。 – bipen

+1

@bipen我非常確定'$(「。high」).val()'總是會得到[jQuery集合中第一個元素的值](http://api.jquery.com/val/ ),在這種情況下,它將是'Y' – godfrzero

2

你可以得到的單選按鈕的值輸入使用:

high: $("input:radio[name=high]:checked").val() 

取出ID。在現實生活中擁有相同身份證的兩個人被稱爲身份盜竊,並且是非法的。它也應該在HTML中。

0

你試過:

$('#high:checked').val() 

你將需要投入的條件檢查要麼單選按鈕是否首先檢查,或者只是檢查,如果這個不返回「未定義」

1

正如其他人所提到的,您可以使用input:radio[name="high"]:checked選擇器和jQuery val()方法來完成此操作,但我認爲我會添加一些可能有助於未來訪問者的改進:

標籤:標籤的全部點如果沒有附加到實際元素上,則會丟失。因此,無論您分配一個輸入ID後的標籤中附上元素,或者使用for屬性:

<!-- One way to do this --> 
<label><input type="radio" id="high" name="high" value="Y" /> Y </label> 

<!-- Or another way --> 
<input type="radio" id="uniqueID" name="high" value="Y" /> 
<label for="uniqueID"> Y </label> 

這提高了可訪問性。屏幕閱讀器不會看到浮動的隨機表單標籤,常規用戶將能夠點擊標籤來選擇選項。

CSS標識符:標識符是唯一的。如果您在文檔中使用多個文件,我甚至不知道會發生什麼。我有一些錯誤,根據選擇器的部分代碼不起作用,或者它只對第一個元素起作用。如果我發現任何一貫的奇怪行爲,我會研究並更新,但底線是保持您的ID唯一。

序列化表單數據:由於您已經包含了jQuery,因此您有兩種方法可以將您的表單序列化。當然,我假設這些都在相同的形式,否則你將不得不寫一個可能複雜的選擇器來選擇你想要的表單元素。如果是這樣,您可以執行下列操作之一:serialize()serializeArray()

// Returns the formdata serialized as a string, similar to a GET request 
$('form#selector').serialize(); 

// Returns the formdata serialized as an array, use if you want to send JSON etc. 
$('form#selector').serializeArray();