我有这段代码:
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.");
}
}
HTML:
<form>
<input name="input1">
<select name="skuld_other">
(...)
</select>
<select name="skuld_fast">
(...)
</select>
<input type="button" onClick="validate(this.form);">
</form>
input1
运行正常。无论是否选择了任何内容,skuld_other
和skuld_fast
都不会。 console.log
语句都已打印出来。
我尝试使用此代码制作的声明如下:对于input
的for循环中的每个元素(select
或form.elements
),如果没有任何内容写入字段,并且未选择元素的标记名称,或者只选择skuld_fast
和skuld_other
中的任何一个,然后设置errors = 1
。< / p>
我应该注意,对于我正在使用Select Picker:http://silviomoreto.github.io/bootstrap-select/