Использование логики IF в HTML-форме для направления на разные URL - PullRequest
0 голосов
/ 06 апреля 2019

Я новичок в JavaScript и пытаюсь создать форму, которая будет переводить пользователя в поддомен на основе его ввода.Пользователь вводит строку, выбирает значение из выпадающего меню.После того, как пользователь нажмет кнопку «Отправить», он будет перенаправлен на пользовательский URL-адрес в зависимости от его ввода.

По какой-то причине мой оператор IF не работает, а префикс всегда равен a1.

Вот код:

<script type="text/javascript">
  function goToPage() {

  var prefix;

  if (document.getElementById('model').value = 93) {
    prefix = "a1";
  }

  else if (document.getElementById('model').value = 95) {
    prefix = "a2";
  }

  else {
    prefix = "a3";
  }

  window.location = "https://example.com/" + prefix + "/" + document.getElementById('string').value;
}
</script>

<input type="text" id="string" />
<select id="model" />
  <option value="93" />9-3</option>
  <option value="95" />9-5</option>
<option value="96" />9-6</option>
</select>
<input type="submit" value="submit" onclick="goToPage();" />

Ответы [ 2 ]

0 голосов
/ 06 апреля 2019

Не используйте операторы присваивания.Маркировка с одним уравнением означает оператор присваивания.Используйте двойные одинаковые отметки в условиях.

if (document.getElementById('model').value == 93) 
0 голосов
/ 06 апреля 2019

Вы используете оператор присваивания (=) в условии, поэтому условие всегда оценивается как true. Вы должны использовать оператор сравнения (== или ===).

Обратите внимание: Поскольку входные значения имеют тип string, и вы сравниваете их с числом, перед сравнением лучше преобразовать их в число. Также используемые вами теги HTML ( select и option ) закрывают их в самом стартовом теге (как если бы он самозакрывающийся), который не является допустимым синтаксисом HTML.

Попробуйте следующим образом:

function goToPage() {
  var elValue = Number(document.getElementById('model').value);
  var prefix;
  if (elValue == 93) {
    prefix = "a1";
  }
  else if (elValue == 95) {
    prefix = "a2";
  }
  else {
    prefix = "a3";
  }

  window.location = "https://example.com/" + prefix + "/" + document.getElementById('string').value;
}
<input type="text" id="string" />
<select id="model">
  <option value="93">9-3</option>
  <option value="95">9-5</option>
  <option value="96">9-6</option>
</select>
<input type="submit" value="submit" onclick="goToPage();" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...