【问题标题】:Error checking attribute against 'false'针对“假”检查属性时出错
【发布时间】:2010-04-19 07:06:45
【问题描述】:

我使用此 javascript 语法来验证复选框...

 alert(document.getElementById("ctl00_ContentPlaceHolder1_Chkreg").checked);
  if (document.getElementById("ctl00_ContentPlaceHolder1_Chkreg").checked == false) {
        document.getElementById("ctl00_ContentPlaceHolder1_ErrorMsg").innerHTML = "please select the checkbox";
        document.getElementById("ctl00_ContentPlaceHolder1_Chkreg").focus();
        return false;
    }

我的警报显示错误,但我的 if 循环不起作用...任何建议...

【问题讨论】:

  • 返回服务器端代码...
  • 顺便说一句:它被称为“if 语句”或类似的东西,而不是“if 循环”。
  • 为我工作(在 FF3.6 上):jsbin.com/exavo。 “返回服务器端代码”是什么意思?怎么可能?
  • 尝试从包含 "== false" 的 if 中复制整个表达式,可能返回的值只是序列化为 "false" 但不等于布尔值 false...
  • @stein 是的,你是对的.. 我刚刚发现并让它工作了..

标签: javascript validation checkbox


【解决方案1】:

假设你的框没有被选中,我个人会这样写:

var box = document.getElementById("ctl00_ContentPlaceHolder1_Chkreg");
if (!box.checked) {
    document.getElementById("ctl00_ContentPlaceHolder1_ErrorMsg").innerHTML = "please select the checkbox";
    box.focus();
    return false;
}

【讨论】:

  • 也许,如果您的脚本在页面加载时运行,并且您之前可能没有选中该框,这可能会导致未定义选中的变量。使用感叹号使用真/假技术检查此属性。为空或未定义的东西也将是虚假的。你通常比检查属性是否实际上等于 false 更好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-05
  • 1970-01-01
  • 2018-01-05
  • 1970-01-01
  • 2020-01-11
  • 2019-03-26
相关资源
最近更新 更多