javascript - 使用可重复的 Javascript 函数来验证多个单选按钮组

标签 javascript html forms

我在这里(以及通过 Google)查看了许多不同的问题,但未能找到接近我正在寻找的答案。

我有一个表单(使用表格设置),其中有多个单选按钮组,我正在尝试使用 JS 对其进行验证。我知道我可以为每个组编写一个函数来完成所需的任务,但是我正在尝试使用尽可能少的函数来简化我的 JS 脚本,所以这里是。

我正在尝试编写一个函数,该函数将检查选择了哪个单选按钮并根据所做的选择执行不同的任务。

HTML 代码:

    <tr>
        <td class="left"><span class="required">*</span>Only approved Ingredients Used:</td>
        <td>
            <label><input name="approve" type="radio" required id="approve_0" value="Yes">Yes</label>
            <label><input name="approve" type="radio" required id="approve_1" value="No">No</label>
        </td>
    </tr>

对于像这样的每个部分(我有大约 15 个这样的部分),我尝试使用“onChange =“somefunction()”调用,这将导致错误消息“(标签名称)必须完成”,如下所示并导致出现一个文本框,供用户在提交表单之前输入“纠正措施”。

任何帮助将不胜感激

我也想远离 jquery

最佳答案

var submit = document.getElementById('submit');
var approve = document.getElementsByClassName('approve');

function approveRad() {
  var selected = false;
  for (var i = 0; i < approve.length; i++) {
    if (approve[i].checked) {
      selected = true;
      break;
    }
  }
  if (!selected) {
    alert(approve.id + " must be completed");
    return;
  }

}
tr {
  width: 30%;
}
input {
  outline: 1px solid blue;
}
<form action="return false">
  <table>

    <tr>
      <td class="left"><span class="required">*</span>Only approved Ingredients Used:</td>
      <td>
    </tr>
    <tr>
      <td>
        <label>
          <input name="approve" class="approve" type="radio" required id="approve_0" value="Yes">Yes</label>
        <label>
          <input name="approve" class="approve" type="radio" required id="approve_1" value="No">No</label>

        <td>
    </tr>
    <tr>
      <td>
        <label>
          <input name="approve" class="approve" type="radio" required id="approve_2" value="Yes">Yes</label>
        <label>
          <input name="approve" class="approve" type="radio" required id="approve_3" value="No">No</label>

      </td>
    </tr>
    <tr>
      <td>
        <label>
          <input name="approve" class="approve" type="radio" required id="approve_4" value="Yes">Yes</label>
        <label>
          <input name="approve" class="approve" type="radio" required id="approve_5" value="No">No</label>

      </td>
    </tr>
    <tr>
      <td>
        <label>
          <input name="approve" class="approve" type="radio" required id="approve_6" value="Yes">Yes</label>
        <label>
          <input name="approve" class="approve" type="radio" required id="approve_7" value="No">No</label>



      </td>
    </tr>
  </table>
  <input id="submit" type="submit" value="Submit" onsubmit="approveRad();" />
</form>

关于javascript - 使用可重复的 Javascript 函数来验证多个单选按钮组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33590389/

相关文章:

windows - 静态类和 "this"关键字

javascript - 只打开一个 Accordion 崩溃,bootstrap

javascript - 当作为某些 JSON 数据的一部分返回时,字符串 "&lt;/script&gt;"会导致任何问题吗?

javascript - 是否可以更改链接的 href?

jquery - 向栏边框添加分隔符

node.js - Node 乘法器 : Form submission fails when there is no file to upload

javascript - 播放声音有延迟(100ms)?

javascript - 有人可以使这个脚本更简单吗?

html - 如何将 div 标签内的文本与链接对齐。

javascript - 使用 jquery 将表单数据保存到本地 json 文件中