我有两个单选按钮,希望发布所选按钮的值。如何使用jQuery获取值?

我可以得到所有这些:

$("form :radio")

我如何知道选择了哪一个?


当前回答

试试看-

var radioVal = $("#myform").find("input[type='radio']:checked").val();

console.log(radioVal);

其他回答

要获取id为myForm的表单的选定radioName项的值,请执行以下操作:

$('input[name=radioName]:checked', '#myForm').val()

下面是一个示例:

$('#myForm input').on('change',function(){alert($('input[name=radioName]:checked','#myForm').val());});<script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js“></script><form id=“myForm”><fieldset><legend>选择radioName</legend><label><input-type=“radio”name=“radioName”value=“1”/>1</label><br/><label><input-type=“radio”name=“radioName”value=“2”/>2</label><br/><label><input-type=“radio”name=“radioName”value=“3”/>3</label><br/></fieldset></form>

我需要做的是简化C#代码,即在前端JavaScript中尽可能多地执行。我使用的是一个字段集容器,因为我在DNN中工作,它有自己的表单。所以我不能添加表单。

我需要测试3个文本框中的哪一个正在使用,如果是,搜索类型是什么?以值开头,包含值,值的精确匹配。

HTML格式:

<fieldset id="fsPartNum" class="form-inline">
<div class="form-group">
    <label for="txtPartNumber">Part Number:</label>
    <input type="text" id="txtPartNumber" class="input-margin-pn" />
</div>
<div class="form-group">
    <label for="radPNStartsWith">Starts With: </label>
    <input type="radio" id="radPNStartsWith" name="partNumber" checked  value="StartsWith"/>
</div>
<div class="form-group">
    <label for="radPNContains">Contains: </label>
    <input type="radio" id="radPNContains" name="partNumber" value="Contains" />
</div>
<div class="form-group">
    <label for="radPNExactMatch">Exact Match: </label>
    <input type="radio" id="radPNExactMatch" name="partNumber" value="ExactMatch" />
</div>

我的JavaScript是:

        alert($('input[name=partNumber]:checked', '#fsPartNum').val()); 
    if(txtPartNumber.val() !== ''){
        message = 'Customer Part Number';
    }
    else if(txtCommercialPartNumber.val() !== ''){

    }
    else if(txtDescription.val() !== ''){

    }

只要说任何包含ID的标签都可以使用。对于DNNers来说,这很好知道。这里的最终目标是向中级代码传递在SQL Server中启动部件搜索所需的内容。

这样,我就不必复制以前复杂得多的C#代码了。重物正在这里搬运。

我得找一找这个,然后修补一下,让它发挥作用。所以对于其他DNNer来说,希望这很容易找到。

从这个问题中,我提出了一种替代方法,当您在相应标签的单击事件中时,可以访问当前选定的输入。原因是因为新选择的输入直到其标签的单击事件之后才更新。

TL;博士

$('label').click(function() {
  var selected = $('#' + $(this).attr('for')).val();

  ...
});

$(函数){//这完全不能像上面解释的那样正常工作$(“#报告标签”).click(function(){var query=$('input[name=“filter”]:checked').val();var time=(new Date()).toString();$('.query[data-method=“click event”]').html(query+'在'+time);});//这是有效的,但在连续单击同一标签时无法更新$('#报告的输入[name=“filter”]').on('change',function(){var query=$('input[name=“filter”]:checked').val();var time=(new Date()).toString();$('.query[data method=“change event”]').html(查询+'在'+time);});//这是我想出的解决方案$(“#报告标签”).click(function(){var查询=$(“#”+$(this).attr('fr')).val();var time=(new Date()).toString();$('.query[data-method=“click event with this”]').html(query+'at'+time);});});输入[name=“filter”]{显示:无;}#报告的标签{背景色:#ccc;填充:5px;边距:5px;边界半径:5px;光标:指针;}.query查询{填充:5px;边距:5px;}.query:之前{content:“on”attr(数据方法)“:”;}[数据方法=“单击事件”]{颜色:红色;}[数据方法=“更改事件”]{颜色:#cc0;}[数据方法=“单击此事件”]{颜色:绿色;}<script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js“></script><form id=“reported”><input type=“radio”name=“filter”id=“question”value=“questions”checked=“checked”><label for=“question”>问题</label><input type=“radio”name=“filter”id=“answer”value=“answers”><label for=“answer”>答案</label><input type=“radio”name=“filter”id=“comment”value=“comments”><label for=“comment”>注释</label><input-type=“radio”name=“filter”id=“user”value=“users”><label for=“user”>用户</label><input type=“radio”name=“filter”id=“company”value=“companies”><label for=“company”>公司</label><div class=“query”data method=“click event”></div><div class=“query”data method=“change event”></div><div class=“query”data method=“click event with this”></div></form>

下面是我如何填写表格并处理已检查的收音机的获取。

使用名为myForm的表单:

<form id='myForm'>
    <input type='radio' name='radio1' class='radio1' value='val1' />
    <input type='radio' name='radio1' class='radio1' value='val2' />
    ...
</form>

从表单中获取值:

$('#myForm .radio1:checked').val();

如果您不发布表单,我会通过以下方式进一步简化:

<input type='radio' class='radio1' value='val1' />
<input type='radio' class='radio1' value='val2' />

然后获取检查值变为:

    $('.radio1:checked').val();

在输入上有类名可以让我轻松地设置输入的样式。。。

获取所有收音机:

var radios = jQuery("input[type='radio']");

筛选以获取选中的

radios.filter(":checked")