Если пользователь вводит определенный текст в форму, перенесите его на определенную страницу при отправке.

0

У меня есть веб-сайт, на котором пользователь может узнать о веб-дизайне или дизайне игры, а также указать форму индекса, которую они предпочитают изучать. Единственная часть моего скрипта, который работает, это предупреждение о том, что они не выбрали, если они оставили форму пустой и отправленной. Здесь код:

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>
  • 1
    Так в чем тут проблема. Не уверен насчет вашей проблемы. Можете ли вы уточнить, пожалуйста.
  • 0
    Вместо var x = document.forms ["form1"] ["lesson"]. Value; Вы можете попробовать document.getElementsByName ("урок"). значение
Показать ещё 1 комментарий
Теги:
forms

3 ответа

0
Лучший ответ

[Если я правильно понимаю вашу проблему:] Вы должны обратиться к 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();">
  • 0
    onsubmit - это хороший подход к валидации.
  • 0
    это сработало отлично, большое спасибо
Показать ещё 3 комментария
0

Попробуйте это

<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.");
}}
  • 0
    не перенаправляет
0

Я предпочел бы вам перейти к 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-документа. Перейдите сюда, чтобы скачать ссылку.

  • 0
    Спасибо, но он по-прежнему не перенаправляет пользователя при вводе текста.
  • 0
    Вы добавили файл jquery?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню