当前位置: 首页 > 知识库问答 >
问题:

javascript中的单选按钮验证错误

段劲
2023-03-14

我有两个单选按钮来选择性别。在JS下方使用,但如果选择了“女性”按钮,则会接受该按钮,但如果选择了“男性”,则表明未选择任何按钮。

var r = document.getElementsByName("sex")
var sex= -1;
for(var i=0; i <= r.length; i++)
    {
         if(r[i].checked)
            {
            sex = i; 
            }
    if (sex == -1)
    { 
        alert("please select gender");
        return false;
    }    
}

我已经为两个电台取了两个div,两个电台都有相同的名字。所以这是我的html来检查是否有问题,

<div style="margin-top:17px; width:92px;float:left;">
   <input id="female" class="radio" type="radio" name="sex" value="female">Female</input>
</div>
<div style="margin-top:17px; width:92px;float:left; margin-bottom:17px;">
   <input class="radio" id="male" type="radio" name="sex" value="male">Male</input>
</div>

共有2个答案

尉迟兴修
2023-03-14

也许你可以简化逻辑,用一个更明确的“选中”检查代替for循环。此外,请注意,单选按钮要有可点击的文本标签,要使用文本,因为这是非标准的,在大多数浏览器中无法正常工作。

js prettyprint-override">function validateFn() {
  if (document.querySelectorAll('[name=sex]:checked').length == 0) {
    alert('please select a sex')
  }
}

document.querySelector('[type=button]').addEventListener('click',validateFn, false);
<form>
  <div>
    <input id="female" class="radio" type="radio" name="sex" value="female" />
    <label for="female">Female</label>
  </div>
  <div>
    <input class="radio" id="male" type="radio" name="sex" value="male" />
    <label for="male">Male</label>
  </div>
  <input type="button" value="validate"/>
</form>
越勇锐
2023-03-14

这里有一些问题。

  • JavaScript是基于零索引的。你用i运行了一个循环
function validate()
{

  var r = document.getElementsByName("sex")

  var sex= -1;
  for(var i=0; i < r.length; i++)
    {
         if(r[i].checked)
         {
            sex = i; 
            break;
         }
    }
    if (sex < 0)
    { 
        alert("please select gender");
        return false;
    }
}

document.querySelector("button").addEventListener("click", validate, false);
html lang-html prettyprint-override"><div style="margin-top:17px; width:92px;float:left;">
   <input id="female" class="radio" type="radio" name="sex" value="female">Female</input>
</div>
<div style="margin-top:17px; width:92px;float:left; margin-bottom:17px;">
   <input class="radio" id="male" type="radio" name="sex" value="male">Male</input>
</div>

<button>Validate</button>

 类似资料:
  • 问题内容: 这似乎应该很容易,但是我没有找到答案。我有一个表格,需要在此表格中确认是否从广播组中进行了选择。我尝试在单选按钮上使用’required’属性,但是在验证表单后,除非所有单选按钮都被选中(设计上是不可能的),否则它将抱怨。 在AngularJS中验证无线电组选择的正确方法是什么? 单击Plnkr中的“提交”按钮将显示该行为。 http://plnkr.co/edit/3qcIbMvJk

  • 我正在开发一个示例项目,名为:网球俱乐部管理,使用javascript、HTML、CSS和Bootstrap。在这个项目中,我有一个管理者。html页面,其中有两个按钮添加播放器 注意:我需要做的是,当我点击保存按钮时,它应该检查是否选择了其中一个收音机(性别:男性/女性..在这种情况下)。我还没弄明白。下面是代码文件和屏幕截图 JSIDLE链接:https://jsfiddle.net/mohi

  • 我正在尝试验证使用th:each创建的单选按钮的输入。在输入中使用th:field输出html中的checked=“checked”,这使得一个单选按钮被选中onload,但我不想要。如果我放置name=“field”,则不会发生这种情况,但是不会对字段进行验证,因为我不会使用th:field。

  • 我刚接触vee validate。我想知道您如何验证按钮是否已按下。我已经用ValidationObserver包装了我的表单,其中有一个v形槽无效。我希望用户被要求选择一个按钮,这将允许用户继续到下一页。 代码验证观察员,我包装我的表单: 下面的代码是我需要知道如何设置用户从列表中选择按钮所需的验证。 和结束我的形式我有按钮,允许用户继续。该按钮将被禁用,直到表单完成并且没有验证错误。但我也想确

  • 我有一个有3个字段的表单:类型(单选按钮)、名称和地点。如果我选择值'Y'从单选按钮验证应出现的名称和地点。如果我选择值'N'从单选按钮验证不应该显示的地方。请帮我实现功能。工作stackblitz:https://stackblitz.com/edit/angular-ivy-jzjh4j?file=src/app/app.component.ts TS

  • 硒IDE - 运行脚本时,硒IDE中的单选按钮出现错误。在我的脚本中,需要选择单选按钮(选择日期),但其错误消息“[错误] 元素 id=radio250 未找到”。它在这里停止执行。即使我使用另一个日期,它仍然停在同一点上。如何更改动态中的值? 我是测试行业的新手,希望能在这方面有所帮助。我知道这与xpath有关,但我不知道如何使用它;)