Прежде всего,
document.forms["myForm"]["lintoe1"]["noun"]["verb"]["tenses1"]["isroot1"]["nonroot1"]["cases1"].value
не будет работать.Вам нужно сделать что-то вроде этого:
document.forms["myForm"]["lintoe1"].value
document.forms["myForm"]["noun"].value
document.forms["myForm"]["verb"].value
В вашем примере, forms["myForm"]["lintoe1"]["noun"]
попытается получить имя "noun"
из "lintoe1"
, но они находятся на одном уровне.Другими словами, внутри "lintoe1"
нет элемента "noun"
.
Еще одна вещь, которую я заметил, -
var lintoe1=document.getElementById=("lintoe1");
тоже не будет работать, вы должны удалить второй =
:
var lintoe1=document.getElementById("lintoe1");
Кроме того, вам не нужны эти обе строки:
var x = document.forms["myForm"]["lintoe1"].value;
и
var lintoe1=document.getElementById("lintoe1").value;
Они эквивалентны, и вы получаете точныйтакое же значение.Основное отличие состоит в том, что когда вы используете getElementById
, Javascript будет проходить через весь DOM и все его элементы / элементы, чтобы найти искомый элемент.Используя document.forms["myForm"]
, вам лучше указать, какой элемент должен искать Javascript (form
), и его имя (myForm
).
Лучше validateForm()
будет:
function validateForm() {
var lintoe1=document.getElementById("lintoe1").value;
var noun=document.getElementById("noun").value;
var verb=document.getElementById("verb").value;
[ more code here ];
if (lintoe1 && noun && verb && ....) {
alert("All fields must be filled");
return false;
} else {
alert(x);
}
}
Вышеуказанное работает, потому что document.getElementById("lintoe1").value
вернет либо значение, если оно существует, либо undefined
, если его нет.
if (lintoe1 && noun && verb && ....)
вернет true, если все значениязадавать;если любой из них равен undefined
, он вернет false.
Обратите внимание, что существуют более эффективные способы проверки формы, особенно с использованием других библиотек.
Также, как прокомментировал Энди, у вас не должно быть вложенных форм :
4.10.3 Элемент form
Модель содержимого:
Содержимое потока, но без потомков элементов формы.