Выберите опцию по значению из списка данных, содержащего определенную строку - PullRequest
0 голосов
/ 06 июня 2019

это мой код js

$('#AddressStreet').on('keyup', function() {
    let value = $(this).val();
    let optionVal = $('#AddressStreetList option[value*="' + value + '"]').attr('rel');
    console.log(optionVal); //output 'undefined'
    if (!optionVal) {
        // do something
    }
});

И это мой код html:

<input type="text" class="form-control" name="street" placeholder="street" id="AddressStreet">

Я создаю простой список данных, используя ajax, и когда я вхожу на вход Сам datalist выглядит следующим образом

<datalist id="AddressStreetList">
  <option rel="2346" value="ул. Самара"></option>
  <option rel="2444" value="ул. Цар Самуил"></option>
</datalist>

Я получаю undefined из console.log, когда пытаюсь вывести его на консоль.Также, когда я использую DevTools от Chrome и пишу это

$ ('# AddressStreetList option [value * = "Сам"]'). Attr ('rel');

Я успешно получаю вывод желания:

"2346"

Но я не понимаю, почему мой код не хочет работать?

Ответы [ 2 ]

0 голосов
/ 07 июня 2019

Ну, очень грубая ошибка, я забыл поместить атрибут list в мое поле input, и поэтому он не работал.Так должно быть

<input type="text" class="form-control" list="AddressStreetList" name="street" placeholder="street" id="AddressStreet">
0 голосов
/ 06 июня 2019

Проблема с вашими значениями параметров. Если в значение ввести другой термин, например значение1, значение2, пример, пользователь и т. Д., Все работает нормально. Я думаю, что ваши варианты имеют специальный характер, поэтому он не работает.

Пожалуйста, проверьте образец кода здесь

[https://codepen.io/aalokmali/pen/yWWWdm]
...