我目前正在学习JavaScript并尝试验证一个简单的表单。
我使用显示模块模式并使用for循环检查表单提交时输入字段是否为空。
问题是验证功能没有触发,我在控制台中看不到任何错误。
另外,如果我的JS可以改进,请告诉我。
的jsfiddle
HTML
<form action="" method="post" name="frm" id="form">
<input id="fullname" placeholder="Name" name="input">
<input id="email" placeholder="Email" name="input">
<input type="submit" id="submit">
</form>
JS
"use strict";
var signUp = (function() {
var formSubmit = function() {
var inputField = document.getElementsByTagName('input');
document.forms['frm'].onsubmit = function(e) {
alert('ello');
val();
e.preventDefault();
}
};
function val() {
var check = document.getElementsByName('input');
var len = check.length;
for(var i = 0; i < len; i++) {
if(check[i].length === "") {
alert('empty');
}
}
};
return {
init: formSubmit
}
})();
signUp.init();
答案 0 :(得分:3)
val
正在解雇,如果您在开头放置alert
,则可以看到。
而不是
check[i].length
你应该
check[i].value
答案 1 :(得分:-1)
实际上你的val()函数正在被调用,你的问题是
编辑:.length应该.innerHTML.length&lt; 1
请参阅:http://jsfiddle.net/n4TvL/4/
if(check[i].innerHTML.length < 1) {
alert('empty');
}