Элемент по имени при загрузке значения настройки - PullRequest
0 голосов
/ 07 февраля 2020

Попытка заставить страницу загрузиться с выбранным по умолчанию параметром 2

Ну, ни то, ни другое не работает, что правильно?

Мой HTML такой, без идентификатора или класса

$(window).load(function() {
  $("tour-adult[]").value = 3;
  document.getElementById("tour-adult[]").value = 4;
});
<div class="tourmaster-combobox-wrap">
  <select name="tour-adult[]">
    <option value="">Adult</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
  </select>
</div>

Ответы [ 3 ]

1 голос
/ 07 февраля 2020

Что касается вашей первой попытки, попробуйте выбрать элемент select по его атрибуту name и с помощью метода jQuery s val () установить значение:

$("select[name='tour-adult[]']").val(3);

В настоящее время у вас нет id для выбора. Если вы хотите go native, вы должны использовать что-то вроде querySelector :

document.querySelector("select[name='tour-adult[]']").value = 4;

$(window).on('load', function() {
  $("select[name='tour-adult[]']").val(3);
  
  console.log($("select[name='tour-adult[]']").val());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="tourmaster-combobox-wrap">
  <select name="tour-adult[]">
    <option value="">Adult</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
  </select>
</div>
1 голос
/ 07 февраля 2020

Использование jQuery:

  • Использование .on('load', () {...} вместо .load() - Почему?
  • Использование селектора атрибута как $("[attribute='attributeName']")
  • Передать значение в виде строки, а не числа

$(window).on('load', function() {
  $('select[name="tour-adult[]"]').val('3');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="tourmaster-combobox-wrap">
  <select name="tour-adult[]">
    <option value="">Adult</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
  </select>
</div>
0 голосов
/ 07 февраля 2020

Если вы хотите позвонить по идентификатору, вам нужно будет добавить идентификатор. Я удалил ваш jquery и добавил идентификатор и он работает.

document.getElementById("tour-adult").value = 4;
<div class="tourmaster-combobox-wrap">
  <select id="tour-adult" name="tour-adult[]">
    <option value="">Adult</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
  </select>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...