JavaScript:函数未运行
我目前正在学习JavaScript并尝试验证一个简单的表单 我正在使用显示模块模式,并使用for循环检查表单提交上的输入字段是否为空 问题是validate函数没有启动,我在控制台中没有看到任何错误 此外,如果我的JS可以改进,请一定让我知道 JSFiddle HTMLJavaScript:函数未运行,javascript,Javascript,我目前正在学习JavaScript并尝试验证一个简单的表单 我正在使用显示模块模式,并使用for循环检查表单提交上的输入字段是否为空 问题是validate函数没有启动,我在控制台中没有看到任何错误 此外,如果我的JS可以改进,请一定让我知道 JSFiddle HTML <form action="" method="post" name="frm" id="form"> <input id="fullname" placeholder="Name" name="in
<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();
“严格使用”;
var signUp=(函数(){
var formSubmit=函数(){
var inputField=document.getElementsByTagName('input');
document.forms['frm'].onsubmit=函数(e){
警惕(“ello”);
val();
e、 预防默认值();
}
};
函数val(){
var check=document.getElementsByName('input');
var len=检查长度;
对于(变量i=0;i
实际上正在调用val()函数,您的问题在于
编辑:。长度应为。innerHTML.length<1
见:
if(选中[i].innerHTML.length<1){
警报(“空”);
}
val
正在触发,如果您在开始时输入了警报,您可以看到该警报
而不是
check[i].length
你应该
check[i].value
您的val()
函数实际上正在运行。如果在var len=check.length之后插入警报(len)
代码>它将发出警报2。问题在于if(检查[i].length==“”){alert('empty');}
。。。您的条件是检查check[i]。length是否为空字符串。然后发出警报('empty')
,但由于这种情况从未发生过,因此警报从未发生过。您需要执行检查[i]。value
而不是检查[i]。length
此外,您可能还需要查看document.getElementById以替换对document.forms[name](可能还有document.getElementsByName('input')的使用,以便您能够区分它们)。元素ID在任何地方都可以工作,表单名称在旧的IE版本中有一些问题,在HTML4中被弃用。谢谢Greg。问题是他正在检查check[I]输入的长度是否为空字符串。。它应该是length==0或value==“”……正如我在上面的评论中所说,填充输入字段的innerHTML
长度仍然是0。填充字段时,您的小提琴仍然会发出空警报。实际上.innerHTML.length<1会比valueWhy更好value
专门用于读取字段的值,innerHTML
是访问元素内容的常规方法。填充了值的输入字段在innerHTML
中仍然没有任何内容。还想知道为什么innerHTML。值对我来说更有意义。(您可以通过填写字段并仍然得到空警报来自行验证)
check[i].value