如何在提交之前单击输入提交时验证输入?

时间:2009-09-30 16:07:08

标签: javascript html

我想要它,所以当他们点击提交按钮时,它将首先检查所有字段为class =“req”,如果有空,它将停止提交并给他们一个错误,否则提交应该通过。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

这应该这样做:

document.getElementById('myForm').onsubmit = function() {
    var elems = document.getElementsByClassName('req');
    for(var i = 0; i < elems.length; i++) {
        if(elems[i].value.length == 0) {
            return false;
        }
    }
}

这会将函数附加到表单的提交事件。如果这些元素中的任何一个为空,则该函数将立即返回false,从而阻止提交表单。

如果您不希望将仅限空格的值计为已填充,则可以使用以下内容替换上面的if条件:

 if(elems[i].value.replace(/^\s+|\s+$/g,"").length == 0) {
     ...

答案 1 :(得分:0)

向表单添加“onsubmit”事件处理程序将允许您在需要时执行操作。

  <form onsubmit="checkMyForm(this)">
  ...
  </form>

然后你可以定义一个处理程序

  <script>
  function checkMyForm(myForm) {
    for (var i = 0; i < myForm.elements.length; ++i) {
      var input = myForm.elements[i];
      if (/\breq\b/.test(input.className) && !input.value) {
        // Has an empty required input
        alert('Please enter all required inputs');
        input.focus();
        return false;  // abort form submission
      }
    }
  }
  </script>