【发布时间】:2019-06-06 23:24:25
【问题描述】:
经过研究和各种实现的大量尝试,寻找如何从我的应用程序中获取单选按钮值。基本上它是文件 Index.cshtml 中非常简单的单选按钮:
<div class="col-md-2">
<div style="padding: 0 20px;">
<label for="star-filter2"> Projects vendors status:</label>
<fieldset id="star-filter2">
<input class="radioCheck2" id="rated-filter2" value="true" type="radio" name="starfilter2" />Rated<img src="~/images/check.png" alt="tick box" height="20" width="20" />
<br />
<input class="radioCheck2" id="rated-filter2" value="false" type="radio" name="starfilter2" />Not rated<img src="~/images/excl_mark.png" alt="excl mark" height="20" width="20" />
<br />
<input class="radioCheck2" id="rated-filter2" value="null" type="radio" name="starfilter2" />NULL<img src="~/images/excl_mark.png" alt="excl mark" height="20" width="20" />
</fieldset>
</div>
</div>
这是我试图获取选定单选按钮值的 javascript 代码:
$("#filter2").click(function () {
var showRated = $('#rated-filter2').is(':checked');
localStorage.setItem("showRated", showRated);
var location = $("#filter-button2").find("a").attr("href")....;
window.location.href = location;
});
在此代码行中: var showRated = $('#rated-filter2').is(':checked'); is working ,但它只是在检查时获取值。我想要什么,我想获取所选单选按钮的值,例如:true、“null”以及我插入单选按钮的任何值。
我尝试了这些行,但我得到的是“未定义”或总是错误的值。
$('#input[name=\'starfilter2\']:checked').val();
$('#rated-filter2:selected').val();
$('#input[name=starfilter2]:checked').val();
它们都不起作用。
【问题讨论】:
-
您使用
#input作为选择器,但没有一个元素的ID 为input。试试$('input[name=starfilter2]:checked').val()。您的三个输入也具有相同的 ID,但情况并非如此 - ID 应该仅对页面上的一个元素是唯一的。 -
因为它也是一个收音机,当
change事件被触发时,这意味着其中一个被选中(你不能真正取消选中没有代码的单选按钮)。因此,即使不检查是否已选中,您也可以使用类似这样的方法来获取选中的收音机的值:$('[name=starfilter2]').change(function() { alert(this.value); }); -
$(":radio:checked").val();:radio是一个特殊的 jQuery 选择器,等效于$("input[type=radio]")。
标签: javascript jquery