今天写用正则表达式验证表单项的js函数时遇到了一个问题,学到了新的概念,特记录在此。
为了验证表单项是不是合法,需要定义一个函数,函数在form的onsubmit事件中调用。在函数中,先获取填入的值,然后用test()函数验证。开始时我用document.getElementById().getAttribute(“value”)来获取填入的值,但是写完之后一直显示我填入的表单项非法,在网页中打印出获取到的值,根本就不是我填入的值。
然后在网上看到别人写的获取填入值的表达式是document.getElementById.value,我改了代码后果然就可以了。在谷歌上搜它们两者有什么不同,在StackOverflow上面找到了答案。
element.value的结果是element节点的值,在W3C HTML DOM标准中,HTML文档的一切都是node,元素节点的值通过它的value属性来定义。element.getAttribute(“value”)的结果是元素的value属性的值,但它是Markup中的值,也就是已经写到HTML文档中的值,因为填写表单时填写的内容并没有写到HTML文档中,所以这种方法在这里不适用。