今天在学习js中的事件处理机制,突然发现原来的表单验证时不起作用了.试了好几次,都不见反应..后来在多次测试之后,发现使用document.form[0]来操作表单元素时不起作用..后来改成了getElementById()之后便可以使用了..是浏览器不支持呢,还是这个已经被淘汰了呢.具体不是很清楚,以后编程的时候要注意以下了..
而且在验证表单的时候可以使用form的onsubmit属性来通过返回false值阻止表单的提交,也可以使用button的onclick函数来提交;

下面是我写的代码:

 

function check() {

var err = "";

var form = document.getElementById("form");

if (form.username.value == null || form.username.value == "") {

err += "用户名不能为空" + "\n";

}

if (form.password.value == null || form.username.value == "") {

err += "密码不能为空" + "\n";

}

if (form.email.value == null || form.email.value == "") {

err += "邮箱不能为空" + "\n";

} else if (!/^\w([+-.]\w+)*@\w([-.]\w+)*\.\w+([-.]\w+)*$/

.test(form.email.value)) {

err += "邮箱格式不正确" + "\n";

}

if (err != "") {

alert(err);

return false;

} else {

form.submit();

}

在form表单中加入button控件..然后只需要在控件中加入οnclick=“check()”即可,同时,也可在js的全局区中加入button.οnclick=check添加控件事件的绑定;这里的check只是js中函数的引用..所以后面不能加括号。

同时也应该注意:在定义表单域中控件的name或者id时不能用控件已有的属性名,否则会覆盖原来表单控件的属性.导致表单无法提交

测试了一下,运行良好..为以后写方便copy