[英]Form Validation on submit using javascript
I want to validate a form using javascript when the user submits the form, this is my code, 我想在用户提交表单时使用javascript验证表单,这是我的代码,
document.getElementById("form").addEventListener("submit", function(event){ var elements = document.getElementById("form").elements; var error = 0; for(var i = 0; i < elements.length; i++) { //code if(elements[i].type == "checkbox" || elements[i].type == "radio") { var check_box = document.getElementById(elements[i].id).checked; if (check_box == false) { //code error++; var checkbox_div = elements[i].parentNode.parentNode.id; produce_warning("you must agree to proceed", checkbox_div, elements[i].id); } } else { if (elements[i].value == "" || elements[i].value == null) { //code error++; produce_warning("you can not leave this field empty", elements[i].parentNode.id, elements[i].id); } } } if (error > 0) { //code event.preventDefault(); } else{ return true; } });
Here the event.preventDefault() statement is not executing, please help me thank you. 这里event.preventDefault()语句未执行,请帮助我谢谢。
The problem seems to be caused by using the argument event
in the callback function, try with evt
, demo here: https://jsfiddle.net/5c4gw4st/1/ 该问题似乎是由于在回调函数中使用了参数
event
而引起的,请尝试使用evt
,在此处进行演示: https : //jsfiddle.net/5c4gw4st/1/
document.getElementById("form").addEventListener("submit", function(evt){
var elements = document.getElementById("form").elements;
var error = 0;
for(var i = 0; i < elements.length; i++)
{
//code
if(elements[i].type == "checkbox" || elements[i].type == "radio") {
var check_box = document.getElementById(elements[i].id).checked;
if (check_box == false) {
//code
error++;
var checkbox_div = elements[i].parentNode.parentNode.id;
produce_warning("you must agree to proceed", checkbox_div, elements[i].id);
}
}
else {
if (elements[i].value == "" || elements[i].value == null) {
//code
error++;
produce_warning("you can not leave this field empty", elements[i].parentNode.id, elements[i].id);
}
}
}
if (error > 0) {
//code
evt.preventDefault();
}
else{
return true;
}
});
Try to use bracket notation: 尝试使用括号表示法:
if (error > 0) {
//code
event[preventDefault()];
}
Also check that event is an object. 还要检查事件是否是对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.