2013-07-29 123 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();