在onsubmit内部未调用JS表单验证功能

时间:2019-04-26 15:14:49

标签: javascript

我正在尝试使用pureJS在HTML表单上运行表单验证。

这是我的代码:

likes

posts

没有错字的新链接:http://jsfiddle.net/mech8bon/

http://jsfiddle.net/4bjmh9as/

预期::先调用警报,然后调用函数。

结果:什么也没叫。

2 个答案:

答案 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属性。

第二个解决方法是通过发送表单本身而不是名称来使表单更加通用。