JavaScript 表单
JavaScript 表单验证
HTML 表单验证可以通过 JavaScript 来完成。
以下实例代码用于判断表单字段(fname)值是否存在, 如果不存在,就弹出信息,阻止表单提交:
JavaScript 实例
function validateForm() {
var x = document.forms["myForm"]["fname"].value;
if (x == null || x == "") {
alert("需要输入名字。");
return false;
}
}
以上 JavaScript 代码可以通过 HTML 代码来调用:
HTML 表单实例
<form name="myForm" action="demo_form.php" onsubmit="return validateForm()" method="post">
名字: <input type="text" name="fname">
<input type="submit" value="提交">
</form>
尝试一下 »
JavaScript 验证输入的数字
JavaScript 常用于对输入数字的验证:
机械挨踢男
219***3799@qq.com
关于多表单使用同一验证函数问题:
上面用 js 表单验证判断表单字段(fname)值是否存在,如果想多个表单都使用同一个函数调用,传入参数后功能会失效,希望有大佬能解决这个问题。
现在我在网上找到的替代方法如下:
所有表单调用时都使用:
经验证好使。
机械挨踢男
219***3799@qq.com
汉森
wei***611@126.com
参考地址
onsubmit="return validateForm()" 为什么不是 onsubmit="validateForm()" ??
onsubmit="validateForm()" 能够调用 validateForm() 对表单进行验证,但是在验证不通过的情况下,并不能阻止表单提交。
onsubmit="return validateForm()" 当验证不通过时,返回 false,可以阻止表单提交。
为何?
原来 onsubmit 属性就像是 <form> 这个 html 对象的一个方法名,其值(一字符串)就是其方法体,默认返回 true;
相当于:
这样复写了 onsubmit 的默认方法(默认返回 true),根据 validateForm() 的结果返回 true 或 false,当验证不通过时,返回 false,onsubmit="return false;" 阻止表单提交。
汉森
wei***611@126.com
参考地址
疾风无名
190***8209@qq.com
用户体验提示
表单验证 html 属性 required 有几个缺陷。
就是当一个 input 设置为 required 的时候,在初始化时,因为其本身是空的,所以 invalid 伪类会对它起作用,这不是我们想看到的,此时我们什么还都没有做。
我们可以统一在这些伪类前加上父选择器 .invalid,这时只有在父元素具有 invalid 类时,这些伪类才会起作用。可以设置一个 submit 事件,在表单提交因验证失败后,会触发 input 的 invalid 事件,给 form 添加 invalid 类:
因为 invaild 是 Input 的事件,而不是 form 的事件,所以这里我们设置第三个参数为 true 采用事件捕获的方式处理,另外 css 选择器的使用对 this.className 影响需要提前处理。
疾风无名
190***8209@qq.com