5

当我想通过 javasript 检查用户输入时,我的 return false 语句在 Chrome 中不起作用。即使我返回 false,它也会触发动作标签。这是我的代码

<script type="text/javascript">
  function testInput(){
    if(document.getElementById("input1").value == ""){
      alert('error');
      return false;
    }else{
      return true;
    }
  }
</script>

的HTML

<form action="exec.php" method="post" onSubmit="return testInput()">
<input type="text" id="input1" name="input1" />
<input type="submit" value="Exec" />
</form>
4

2 回答 2

2

我知道我迟到了,但这个回复可能会帮助将来的人。我今天遇到了同样的问题。在阅读了 Jack 的评论后,我在我的检查函数中插入了一个 try/catch 块。这使我能够阻止执行停止(即使代码崩溃也返回 false)并在 Chrome 控制台面板中打印错误。您可以尝试相同的方法:

function testInput(){
    try {
        if (document.getElementById("input1").value == "") {
            alert('error');
            return false;
        } else {
            return true;
        }   
    } catch (e) {
        console.error(e.message);
        return false;
    }
}
于 2013-05-06T11:15:19.893 回答
0

您确定输入字段中没有空格吗?

试试这样的 if(document.getElementById("input1"). value.trim() == "")

请注意,tirm 在 IE 中无法正常工作。如果需要,请使用此解决方法http://goo.gl/L802W

于 2012-06-04T06:47:28.893 回答