使用Javascript循环检查空表单字段

时间:2014-04-10 00:04:32

标签: javascript forms loops

我正在尝试循环一个小表单并检查空白字段。我觉得这很简单,但我无法得到任何工作。这是我到目前为止的Javascript:

var obj = {

fname : document.getElementsByName('fname'),
lname : document.getElementsByName('lname'),
phone : document.getElementsByName('phone'),
email : document.getElementsByName('email'),
span : document.createElement('span'),
txt : document.createTextNode('*Required Field'),



init : function(){
     document.getElementsByName('submit').onclick = obj.validate;
},

validate : function(){
     var check = document.getElementsByTagName('input');
     var len = check.length;
     for(var i=0;i<len;i++)
     {
     if (check[i].value ==='')
     {
          alert('required');
          return false;
     }; 

 };

  },

};

这是HTML:

<body>
<form method="post" action="">
<div>
<ul>
<li><label>First Name</label><input type="text" name="fname" size="30"  /></li>
<li><label>Last Name</label><input type="text" name="lname" size="30"  /></li>
<li><label>Phone</label><input type="text" name="phone" size="30"  /></li>
<li><label>Email</label><input type="text" name="email" size="30" /></li>
<li><input type="submit" name="submit" value="Submit" /></li>
</ul>
</div>
</form>
<script type="text/javascript" src="js/main.js"></script>
<script type="text/javascript">obj.init();</script>  
</body>
</html> 

我认为我应该能够循环输入并在值为空白时发出警报,但是,它对我不起作用。任何帮助都会很棒。

4 个答案:

答案 0 :(得分:2)

尝试此操作(将id="submit"属性添加到提交元素后):

  init : function(){
     document.getElementById('submit').onclick = obj.validate;
  },

  validate : function(){
     var check = document.getElementsByTagName('input');
     var len = check.length;
     for(var i=0;i<len;i++) {
       if (check[i].value ==='')
       {
          alert('required');
          return false;
       }; 
     };
  }

答案 1 :(得分:1)

更改

if (check.value ==='')

if (check[i].value ==='')

答案 2 :(得分:0)

您正在检查对象检查而不是其中的每个元素。这样做

if(check[i].value === '')

答案 3 :(得分:0)

试试这个我相信它对你有用!

var obj = {

fname : document.getElementsByName('fname'),
lname : document.getElementsByName('lname'),
phone : document.getElementsByName('phone'),
email : document.getElementsByName('email'),
span : document.createElement('span'),
txt : document.createTextNode('*Required Field'),



init : function(){
     document.getElementsByName('submit').onclick = obj.validate;
},

validate : function(){
     var check = document.getElementsByTagName('input');
     var filteredCheckArray = Array.from(check).filter( input =>{
          return input.value.length === 0;
     }
     );
     if (filteredCheckArray.length !== 0)
     {
          alert('required');
          return false;
     }; 

  },

};