我正在尝试循环一个小表单并检查空白字段。我觉得这很简单,但我无法得到任何工作。这是我到目前为止的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>
我认为我应该能够循环输入并在值为空白时发出警报,但是,它对我不起作用。任何帮助都会很棒。
答案 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;
};
},
};