我正在尝试使用pureJS在HTML表单上运行表单验证。
这是我的代码:
likes
posts
没有错字的新链接:http://jsfiddle.net/mech8bon/
预期::先调用警报,然后调用函数。
结果:什么也没叫。
答案 0 :(得分:1)
在浏览器中打开开发人员工具。查看控制台。阅读错误消息。
未捕获的TypeError:无法读取未定义的属性“元素”
您正在传递变量 myForm
:
validateForm(myForm);
但是随后您将其视为包含属性名称的字符串:
const form = document.forms[formName];
字符串文字需要用引号引起来:
validateForm('myForm');
答案 1 :(得分:0)
在Riddle和Quentin的帮助下,解决方案得到了解决: http://jsfiddle.net/eg89b02j/2/
<form name="myForm" action="" onsubmit="return validateForm(this);" novalidate>
第一个解决方法是向表单标签添加novalidate属性。
第二个解决方法是通过发送表单本身而不是名称来使表单更加通用。