验证单个单选按钮在可用的javascript验证脚本中不起作用

OM *_*ity 2 javascript validation radio-button

我有随机生成的单选按钮系列

<input type="radio" name="creatorusers" value="1">
<input type="radio" name="creatorusers" value="1">
<input type="radio" name="creatorusers" value="1">
<input type="radio" name="creatorusers" value="1">
.....so on
Run Code Online (Sandbox Code Playgroud)

但我只得到一个单选按钮并执行为它提供的javascript验证chk是否选中单选按钮,然后它不起作用Ples帮助我解决这个问题.

mycreator = -1;

  for (i=frm.creatorusers.length-1; i > -1; i--) {
  if (frm.creatorusers[i].checked) {
  mycreator = i; i = -1;
  }
  }
  if (mycreator == -1) {
  alert("You must select a Creator User!");
  return false;
  }
Run Code Online (Sandbox Code Playgroud)

Tom*_*lak 5

始终(!)使用var关键字.否则,您的变量将在全局范围内(是的,甚至是函数体中的变量),这可能会导致一些难以追踪的错误.

正如@Felix指出的那样,creatorusers如果表单中有多个具有该名称的元素,则只会是一个数组.您可以在必要时创建单元素数组来解决此问题.

这是一个抽象函数,可以验证任意复选框列表.

function ensureChecked(checkboxes, error) {
  if (checkboxes) {
    var cbx = (checkboxes.length > 0) ? checkboxes : [checkboxes]; 
    for (var i=0; i<cbx.length; i++) {
      if (cbx[i].checked) {
        return true;
      }
    }
    alert(error);
  }
  return false;
}
Run Code Online (Sandbox Code Playgroud)

打电话给

ensureChecked(frm.creatorusers, "You must select a Creator User!");
Run Code Online (Sandbox Code Playgroud)