我有两个单选按钮,想要发布所选的一个值.如何通过jQuery获取值?
我可以像这样得到所有这些:
$("form :radio")
我如何知道选择了哪一个?
要获取具有ID的表单的选定 radioName
项的值,请执行以下操作myForm
:
$('input[name=radioName]:checked', '#myForm').val()
这是一个例子:
$('#myForm input').on('change', function() {
alert($('input[name=radioName]:checked', '#myForm').val());
});
用这个..
$("#myform input[type='radio']:checked").val();
如果您已经有对单选按钮组的引用,例如:
var myRadio = $("input[name=myRadio]");
使用该filter()
功能,而不是find()
.(find()
用于查找子/后代元素,而filter()
在您的选择中搜索顶级元素.)
var checkedValue = myRadio.filter(":checked").val();
注意:这个答案最初正在纠正推荐使用的另一个答案,这个答案find()
似乎已经改变了.find()
对于已经有一个容器元素引用而不是单选按钮的情况,它仍然有用,例如:
var form = $("#mainForm"); ... var checkedValue = form.find("input[name=myRadio]:checked").val();
这应该工作:
$("input[name='radioName']:checked").val()
请注意输入周围的"使用:检查而不是像Peter J的解决方案"
您可以使用:checked选择器和无线电选择器.
$("form:radio:checked").val();
如果你只想要布尔值,即是否检查它,请尝试:
$("#Myradio").is(":checked")
获取所有无线电:
var radios = jQuery("input[type='radio']");
过滤以获得已检查的那个
radios.filter(":checked")
另一种选择是:
$('input[name=radioName]:checked').val()
$("input:radio:checked").val();
这是我如何编写表单并处理已检查无线电的获取.
使用名为myForm的表单:
从表单中获取值:
$('#myForm .radio1:checked').val();
如果您没有发布表单,我会使用以下内容进一步简化:
然后获取选中的值变为:
$('.radio1:checked').val();
在输入上有一个类名允许我轻松设置输入样式...
在我的情况下,我有一个形式的两个单选按钮,我想知道每个按钮的状态.以下这个对我有用:
// get radio buttons value
console.log( "radio1: " + $('input[id=radio1]:checked', '#toggle-form').val() );
console.log( "radio2: " + $('input[id=radio2]:checked', '#toggle-form').val() );
在JSF生成的单选按钮(使用
标记)中,您可以执行以下操作:
radiobuttonvalue = jQuery("input[name='form_id\:radiobutton_id']:checked").val();
其中selectOneRadio ID是radiobutton_id,表单ID是form_id.
请确保使用name而不是id,因为jQuery使用此属性(名称由JSF自动生成,类似于控件ID).
另外,检查用户是否未选择任何内容.
var radioanswer = 'none'; if ($('input[name=myRadio]:checked').val() != null) { radioanswer = $('input[name=myRadio]:checked').val(); }
我写了一个jQuery插件,用于设置和获取单选按钮值.它还尊重他们的"改变"事件.
(function ($) { function changeRadioButton(element, value) { var name = $(element).attr("name"); $("[type=radio][name=" + name + "]:checked").removeAttr("checked"); $("[type=radio][name=" + name + "][value=" + value + "]").attr("checked", "checked"); $("[type=radio][name=" + name + "]:checked").change(); } function getRadioButton(element) { var name = $(element).attr("name"); return $("[type=radio][name=" + name + "]:checked").attr("value"); } var originalVal = $.fn.val; $.fn.val = function(value) { //is it a radio button? treat it differently. if($(this).is("[type=radio]")) { if (typeof value != 'undefined') { //setter changeRadioButton(this, value); return $(this); } else { //getter return getRadioButton(this); } } else { //it wasn't a radio button - let's call the default val function. if (typeof value != 'undefined') { return originalVal.call(this, value); } else { return originalVal.call(this); } } }; })(jQuery);
将代码放在任何位置以启用插件.然后享受!它只是覆盖默认的val函数而不会破坏任何东西.
你可以访问这个jsFiddle来试一试它,看看它是如何工作的.
小提琴
如果您有单个形式的多个单选按钮,那么
var myRadio1 = $('input[name=radioButtonName1]'); var value1 = myRadio1.filter(':checked').val(); var myRadio2 = $('input[name=radioButtonName2]'); var value2 = myRadio2.filter(':checked').val();
这对我有用.
$(".Stat").click(function () { var rdbVal1 = $("input[name$=S]:checked").val(); }
这很好用
$('input[type="radio"][class="className"]:checked').val()
工作演示
在:checked
选择工程checkboxes
,radio buttons
并选择要素.仅对于选择元素,请使用:selected
选择器.
API for :checked Selector
要获取使用类的所选无线电的值:
$('.class:checked').val()
用这个:
value = $('input[name=button-name]:checked').val();
我用这个简单的脚本
$('input[name="myRadio"]').on('change', function() { var radioValue = $('input[name="myRadio"]:checked').val(); alert(radioValue); });
演示:https://jsfiddle.net/ipsjolly/xygr065w/
$(function(){
$("#submit").click(function(){
alert($('input:radio:checked').val());
});
});
Sales Promotion
1
2
3
4
5
如果你在1个表单上只有一组单选按钮,那么jQuery代码就像这样简单:
$( "input:checked" ).val()
我已经发布了一个库来帮助解决这个问题.实际上,拉出所有可能的输入值,但也包括检查了哪个单选按钮.您可以访问https://github.com/mazondo/formalizedata查看
它会给你一个答案的js对象,所以形式如下:
会给你:
$("form").formalizeData() { "favorite-color" : "blue" }