У меня есть веб-сайт, на котором пользователь может узнать о веб-дизайне или дизайне игры, а также указать форму индекса, которую они предпочитают изучать. Единственная часть моего скрипта, который работает, это предупреждение о том, что они не выбрали, если они оставили форму пустой и отправленной. Здесь код:
JS:
function validateForm() {
var x=document.forms["form1"]["lesson"].value;
if (x === "web design") {
location.href="web.html";
} else if(x === "game design") {
location.href="game.html";
} else {
alert("You didn't choose. You will remain on the home page.");
}
}
HTML:
<form name="form1" onsubmit="return validateForm()" method="post">
Would you rather learn web design <i>or</i> game design?: <input type="text" name="lesson">
<input type="submit" value="Submit">
</form>
[Если я правильно понимаю вашу проблему:] Вы должны обратиться к form[0]
а также изменить action
<form>
-property вместо изменения местоположения. Если нет, зачем вообще использовать форму? Вместо этого я сделаю следующий более гибкий подход:
function validateForm() {
var val=document.forms[0]['lesson'].value;
switch (val) {
case 'web design' :
document.forms[0].action="web.html";
break;
case 'game design' :
document.forms[0].action="game.html";
break;
default :
alert("You didn't choose. You will remain on the home page.");
return false;
break;
}
}
и измените разметку на
<input type="submit" value="Submit" onclick="validateForm();">
onsubmit
- это хороший подход к валидации.
Попробуйте это
<form name="form1" onsubmit="return validateForm()" method="post">
Would you rather learn web design <i>or</i> game design?:<input type="text" name="lesson" id="lesson">
<input type="submit" value="Submit">
</form>
JS
function validateForm() {
var x = document.getElementById('lesson').value;
if (x === "web design") {
location.href = "web.html";
}
else if (x === "game design") {
location.href = "game.html";
}
else {
alert("You didn't choose. You will remain on the home page.");
}}
Я предпочел бы вам перейти к jQuery. Он прост в использовании и снижает усталость ввода кода. Итак, если вы используете jQuery, ваша форма будет выглядеть так:
<form id="form1" method="post">
Would you rather learn web design <i>or</i> game design?: <input type="text" id="lesson">
<input type="submit" value="Submit">
</form>
и ваш jQuery будет выглядеть так:
$(function()
{
$('#form1').on('submit',function()
{
if($('#lesson').trim().val()=="web design")
location.href="web.html";
if($('#lesson').trim().val()=="game design")
location.href="game .html";
else
{
alert("You didn't choose. You will remain on the home page.");
return false;
}
});
});
и не забудьте включить файл сценария jquery в главную часть вашего html-документа. Перейдите сюда, чтобы скачать ссылку.