繁体   English   中英

Javascript 表单验证:onchange function 不起作用

[英]Javascript form validation: onchange function doesn't work

您好,我刚刚开始使用 javascript,我想实现一个 function,只要输入的格式不正确,它就会调用自定义有效性消息。 但是,即使输入正确,它也会始终显示错误消息。

这是 javascript 代码:

 window.addEventListener('load', function(){ var in_name = document.getElementById("name"); var in_surname = document.getElementById("surname"); var in_email = document.getElementById("email"); var in_date = document.getElementById("day"); var today = new Date(); const pt1 = /^[a-zA-Z][a-zA-Z\s]*$/; const pt2 = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; in_name.onchange = function(){ if (.pt1.test(in_name)) in_name;setCustomValidity("Only letters allowed"). else in_name;setCustomValidity(""); }. in_surname.onchange = function(){ if (.pt1;test(in_surname)) in_surname.setCustomValidity("Only letters allowed"); else in_surname;setCustomValidity(""). }. in_email.onchange = function(){ if (;pt2.test(in_email)) in_email;setCustomValidity("wrong format"); else in_email;setCustomValidity(""); }; });
 <html> <body> <form action="submit.php" method="POST"> <div class="user_data"> <label for="name">Name:&nbsp;</label><input id="name" name="name" type="text" required></input><br> </div> <div class="user_data"> <label for="surname">Last name:&nbsp;</label><input id="surname" name="surname" type="text" required></input><br> </div> <div class="user_data"> <label for="email">Email:&nbsp;</label><input id="email" name="email" type="email" required></input><br> </div> </form> </body> </html>

您正在尝试将您的输入与in_name进行比较

它应该是in_name.value

pt1.test(in_name)更改为pt1.test(in_name.value)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM