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' ?>");
            }
        }
    });
}
});
4

5 回答 5

2

您可以使用以下方法获取单选按钮输入的值:

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

拿出身份证。在现实生活中拥有相同 ID 的两个人被称为身份盗用,是非法的。它也应该是 HTML。

于 2013-07-29T12:23:31.003 回答
1

正如其他人所提到的,您可以使用input:radio[name="high"]:checked选择器和 jQueryval()方法来完成这项工作,但我想我会添加一些改进,以帮助未来的访问者:

标签:如果标签没有附加到实际元素,则标签的整个点都会丢失。因此,要么将您的元素包含在标签中,要么在为for您的输入分配一个 id 后使用该属性:

<!-- 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();
于 2013-07-29T12:49:48.297 回答
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 应该始终是唯一的。

或者您可以将表单序列化并将其作为对象发送

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

你可以把发布的值用..

 $this->input->post('inputName');
于 2013-07-29T12:15:56.713 回答
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' ?>"); 
                }
            }
        });
    }   
    });
于 2013-07-29T12:26:37.707 回答
0

你有没有尝试过:

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

您需要输入一个条件来检查是否首先检查了任一单选按钮,或者只检查这是否不返回“未定义”

于 2013-07-29T12:27:21.573 回答