Javascript 如何验证是否至少选择了其中一个单选按钮?
我已经尝试了所有我能想到的方法,使用Javascript和/或JQuery验证这些单选按钮。什么都没用。这是我的表格:Javascript 如何验证是否至少选择了其中一个单选按钮?,javascript,jquery,html,asp.net-mvc,Javascript,Jquery,Html,Asp.net Mvc,我已经尝试了所有我能想到的方法,使用Javascript和/或JQuery验证这些单选按钮。什么都没用。这是我的表格: @using (Html.BeginForm("NextPage", "AccountsFinance", FormMethod.Post)) { <div class="row Question"> <h2>@Model.Question</h2> </div> <div class="row"> &
@using (Html.BeginForm("NextPage", "AccountsFinance", FormMethod.Post))
{
<div class="row Question">
<h2>@Model.Question</h2>
</div>
<div class="row">
<table cellspacing="10">
<tr>
@foreach (string answer in Model.Answers)
{
<td><input id="rad" type="radio" name="answer" value="@answer" /><span>@answer</span></td>
}
</tr>
</table>
</div>
<div class="row footerButtons">
<div class="col-md-5 col-sm-5"> </div>
<div class="col-md-1 col-sm-1">
<input class="btn btn-success" type="submit" name="Previous" value="Back" />
</div>
<div class="col-md-1 col-sm-1">
<input class="btn btn-success" type="submit" name="NextPage" value="Next" />
</div>
<div class="col-md-5 col-sm-5"> </div>
</div>a
}
@使用(Html.BeginForm(“NextPage”,“AccountsFinance”,FormMethod.Post))
{
@模型问题
@foreach(Model.Answers中的字符串应答)
{
@答复
}
A.
}
我不知道问题是我最终拥有多个相同id的输入,还是因为我使用的是HtmlHelper表单。我尝试过许多堆栈溢出解决方案,包括从内联javascript到使用for循环的所有内容,但都不起作用。例如,使用我当前的尝试:
function myFunction() {
var chx = document.getElementsByTagName('input');
for (var i = 0; i < chx.length; i++) {
if (chx[i].type == 'radio' && !chx[i].checked) {
alert("nope");
return false;
}
else {
return true;
}
}
};
函数myFunction(){
var chx=document.getElementsByTagName('input');
对于(变量i=0;i
无论我是否点击单选按钮,我总是收到警报(“nope”)代码>显示。出什么事了?提前谢谢
您不应该使用id属性,因为页面上会有很多id属性
使用$(“输入[type='radio'])
从页面获取所有无线电输入
将抓取的结果存储在数组中,然后通过它进行迭代,查看是否已检查
您可以从第3点进一步定制Jquery,以仅获取未选中或选中的单选按钮
例如:
function myFunction() {
var radios = $("input[type='radio']");
for( i = 0; i < radios.length; i++ ) {
if( radios[i].checked ) {
return true
} else {
return false;
}
}
return null;
}
函数myFunction(){
变量无线电=$(“输入[type='radio']”);
对于(i=0;i
您不应该使用id属性,因为页面上会有很多id属性
使用$(“输入[type='radio'])
从页面获取所有无线电输入
将抓取的结果存储在数组中,然后通过它进行迭代,查看是否已检查
您可以从第3点进一步定制Jquery,以仅获取未选中或选中的单选按钮
例如:
function myFunction() {
var radios = $("input[type='radio']");
for( i = 0; i < radios.length; i++ ) {
if( radios[i].checked ) {
return true
} else {
return false;
}
}
return null;
}
函数myFunction(){
变量无线电=$(“输入[type='radio']”);
对于(i=0;i
您可以使用下面的jQuery代码来验证单选按钮,html没有问题。只需使用下面的代码
$(function(){
if($("input:radio:checked").length() <= 0){
alert('Nope')
}
else{
alert('Yup')
}
})
$(函数(){
如果($((“input:radio:checked”).length()可以使用下面的jQuery代码来验证单选按钮,则html没有问题。只需使用下面的代码即可
$(function(){
if($("input:radio:checked").length() <= 0){
alert('Nope')
}
else{
alert('Yup')
}
})
$(函数(){
如果($((“input:radio:checked”).length()首先不多次使用同一id,则会使HTML无效
如果你想检查是否只有一个被检查,你可以在几乎一行中完成
function myFunction() {
if ($('input[name="answer"]:checked').length === 1)
{
console.log('only one checked');
}
};
或者没有日志记录
function myFunction() {
return $('input[name="answer"]:checked').length === 1;
};
仅供参考,如果它们都有相同的名称并且是radio的,那么您最多只能检查一个。因此不需要检查>1。首先,不要多次使用相同的id,这会使您的HTML无效
如果你想检查是否只有一个被检查,你可以在几乎一行中完成
function myFunction() {
if ($('input[name="answer"]:checked').length === 1)
{
console.log('only one checked');
}
};
或者没有日志记录
function myFunction() {
return $('input[name="answer"]:checked').length === 1;
};
仅供参考,如果它们都有相同的名称并且是radio的,那么您最多只能检查一个。因此不需要检查>1您可以使用document.getElementById('rad')吗相反,GetElementsByTagname具有多个具有相同id的输入意味着您的HTML无效。您不应该有多个具有相同id的项id@Liam然后,我们可以为所有单选按钮使用唯一的类名,并通过本文档获取您的问题是什么。您将如何处理验证您可以使用document.getElementById('rad')吗相反,GetElementsByTagname具有多个具有相同id的输入意味着您的HTML无效。您不应该有多个具有相同id的项id@Liam然后,我们可以为所有单选按钮使用唯一的类名,并通过本文档获取您的问题是什么。您将如何处理验证,并且不应再使用…应使用长度。这可能会从jquery的更高版本中删除。因此…我们同意…很好…您打算编辑您的答案吗???因为它现在是错误的。我们都同意这一点,不是吗?并且不应再使用…应使用length。这可能会从jquery的更高版本中删除。因此……我们同意……很好……你打算编辑你的答案吗???…因为现在答案是错误的。我们都同意这一点,不是吗?OP需要一个真/假值,而你不会返回。除非它返回null?OP需要一个真/假值,而你不会返回。除非返回空值?非常有效。谢谢!非常有效。谢谢!