使用JavaScript验证表单不起作用
我有以下代码:使用JavaScript验证表单不起作用,javascript,Javascript,我有以下代码: function validate(form) { var errors = 0; els = form.elements; for (var i=0; i<form.elements.length; i++) { if (!els[i].value && els[i].tagName != "select") { console.log(els[i]); els[i].
function validate(form) {
var errors = 0;
els = form.elements;
for (var i=0; i<form.elements.length; i++) {
if (!els[i].value && els[i].tagName != "select") {
console.log(els[i]);
els[i].style.border = "1px solid red";
errors = 1;
}
}
console.log("Finished for loop");
var skuld_fast = document.getElementsByName("skuld_fast")[0];
var skuld_other = document.getElementsByName("skuld_other")[0];
if ((skuld_fast.value && !skuld_other.value) || (!skuld_fast.value && skuld_other.value)) {
skuld_fast.style.border = "1px solid red";
skuld_other.style.border = "1px solid red";
errors = 1;
}
console.log("Finished if statement for skuld_fast and skuld_other");
if (errors == 0) {
form.submit();
}
else {
alert("Eitthvað fór úrskeiðis.");
}
}
函数验证(表单){
var误差=0;
els=形式元素;
for(var i=0;iA select字段将始终在加载页面时选择一个选项,因此skuld_other
和skuld_fast
的值永远不会为false,除非Javascript将其设置为“”。哦,我明白了。我必须测试该选项是否为“”或者类似的东西。但是它仍然在选择元素周围绘制红色边框,即使我注释掉了处理它们的if语句。出于某种原因,它们仍然通过for循环。如果注释掉了处理它们的if语句,这不意味着无论发生什么情况都会绘制红色边框吗?你到底画了什么线是否注释掉了if语句本身或整个块(包括skuld\u fast.style.border=“1px solid red”;
)吗?
<form>
<input name="input1">
<select name="skuld_other">
(...)
</select>
<select name="skuld_fast">
(...)
</select>
<input type="button" onClick="validate(this.form);">
</form>