Форма onSubmit возвращает false не работает в Chrome

Мое возвращаемое ложное утверждение не работает в Chrome, когда я хочу проверить ввод пользователя через javasript. Он запускает тег действия, даже когда я возвращаю 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>

2 ответа

Я знаю, что опоздал, но этот ответ может помочь кому-то в будущем. Я столкнулся с той же проблемой сегодня. Прочитав комментарий Джека, я вставил блок 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;
    }
}

Вы уверены, что в поле ввода нет пробелов?

Попробуйте что-то вроде этого if(document.getElementById("input1"). Value.Trim () == "")

Обратите внимание, что tirm не будет нормально работать в IE. Используйте эту работу в случае необходимости http://goo.gl/L802W

Другие вопросы по тегам