Автозаполнение в каскадном режиме - ошибка [объект объекта] или не выбранное слово - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть поле ввода автозаполнения, и теперь я хочу получить выбранную запись автозаполнения и отправить ее с помощью запроса GET.

Когда я выбираю один из параметров автозаполнения, мой код получает только текст, которыйЯ набрал, а не то, что я выбрал.Например: я набираю «TE» в поле ввода, и в раскрывающемся списке автозаполнения есть «TEST» и «TESTS».Затем, когда я выбираю «ТЕСТ» из этого списка, мне удается получить только введенное мной значение «ТЕ», а не «ТЕСТ», который я выбрал.

Если я сделаю это:

var ultimo = $('#pais').val();

возвращает не выбранное слово, а то, что я набрал.URL, который я получаю из него, становится:

xajax.php?variavel=distritos&q=TE

Я также пытался:

var ultimo = $('#pais').val(ui.item.value); 

Но он возвращает «[объект объекта]», а не выбранное значение, и поэтому я получаюна URL:

xajax.php?variavel=distritos&q=[object Object]

Мне нужно получить URL как:

xajax.php?variavel=distritos&q=TEST

Вот мой код (также: http://apoiarmais.com/teste/paises.php):

$(function () {
    var paises = [
"Afeganistão","África do Sul","Albânia","Alemanha","Andorra","Angola","Anguilla","Antártida","Antígua e Barbuda","Antilhas Holandesas","Arábia Saudita","Argélia","Argentina","Armênia","Aruba","Austrália","Áustria","Azerbaijão","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Bélgica","Belize","Benin","Bermudas","Bolívia","Bósnia-Herzegovina","Botsuana","Brasil","Brunei","Bulgária","Burquina Faso","Burundi","Butão","Cabo Verde","Camboja","Canadá","Casaquistão","Catar","Chade","Chile","China","Chipre","Cingapura","Colômbia","Comores","Congo","Congo-Kinshasa","Coreia do Norte","Coreia do Sul","Costa do Marfim","Costa Rica","Croácia","Cuba","Dinamarca","Djibuti","Dominica","Egito","El Salvador","Emirados Árabes Unidos","Equador","Eritreia","Eslováquia","Eslovênia","Espanha","Estados Unidos","Estônia","Etiópia","Fiji","Filipinas","Finlândia","França","Gabão","Gâmbia","Gana","Geórgia","Geórgia do Sul e Ilhas Sandwich do Sul","Gibraltar","Granada","Grécia","Groênlandia","Guadalupe","Guam","Guatemala","Guernsey","Guiana","Guiana Francesa","Guiné","Guiné Bissau","Guiné Equatorial","Haiti","Holanda","Honduras","Hong Kong, Região Admin. Especial da China","Hungria","Iêmen","Ilha Bouvet","Ilha de Man","Ilha Heard e Ilhas McDonald","Ilha Norfolk","Ilhas Aland","Ilhas Caiman","Ilhas Coco","Ilhas Cook","Ilhas Faroe","Ilhas Malvinas","Ilhas Marianas do Norte","Ilhas Marshall","Ilhas Menores Distantes dos Estados Unidos","Ilhas Natal","Ilhas Salomão","Ilhas Turks e Caicos","Ilhas Virgens Britânicas","Ilhas Virgens dos EUA","Índia","Indonésia","Irã","Iraque","Irlanda","Islândia","Israel","Itália","Jamaica","Japão","Jersey","Jordânia","Kuwait","Lesoto","Letônia","Líbano","Libéria","Líbia","Liechtenstein","Lituânia","Luxemburgo","Macau, Região Admin. Especial da China","Macedônia","Madagascar","Malásia","Malawi","Maldivas","Mali","Malta","Marrocos","Martinica","Maurício","Mauritânia","Mayotte","México","Mianmar","Micronésia","Moçambique","Moldávia","Mônaco","Mongólia","Montenegro","Montserrat","Namíbia","Nauru","Nepal","Nicarágua","Níger","Nigéria","Niue","Noruega","Nova Caledônia","Nova Zelândia","Omã","Palau","Panamá","Papua-Nova Guiné","Paquistão","Paraguai","Peru","Pitcairn","Polinésia Francesa","Polônia","Porto Rico","Portugal","Quênia","Quirguistão","Quiribati","Região desconhecida ou inválida","Reino Unido","República Centro-Africana","República Dominicana","República dos Camarões","República Popular Democrática do Laos","República Tcheca","Reunião","Romênia","Ruanda","Rússia","Saara Ocidental","Saint Pierre e Miquelon","Samoa","Samoa Americana","San Marino","Santa Helena","Santa Lúcia","São Bartolomeu","São Cristovão e Nevis","São Martinho","São Tomé e Príncipe","São Vicente e Granadinas","Senegal","Serra Leoa","Sérvia","Sérvia e Montenegro","Seychelles","Síria","Somália","Sri Lanka","Suazilândia","Sudão","Suécia","Suíça","Suriname","Svalbard e Jan Mayen","Tadjiquistão","Tailândia","Taiwan","Tanzânia","Território Britânico do Oceano Índico","Território da Palestina","Territórios Franceses do Sul","Timor Leste","Togo","Tokelau","Tonga","Trinidad e Tobago","Tunísia","Turcomenistão","Turquia","Tuvalu","Ucrânia","Uganda","Uruguai","Uzbequistão","Vanuatu","Vaticano","Venezuela","Vietnã","Wallis e Futuna","Zâmbia","Zimbábue",

    ];
    $("#pais").autocomplete({
        source: paises
    });

    $(document).ready(function () {
        $('#pais').on('autocompleteselect', function (e, ui) {
            var ultimo = $('#pais').val(toString(ui.item.value));
            var distritos = 'xajax.php?variavel=distritos&q='+ultimo;
            $("#distritos").autocomplete({
                source: distritos
            });
        });
    });
    console.log(pais);
});

HTML:

<div class="ui-widget">
    <input id="pais" />
</div>

<div class="ui-widget">
    <input id="distritos" />
    <div id="tagsdistrito"></div>
</div>

Как получить выбранное значение и передать его по URL-адресу?

1 Ответ

0 голосов
/ 16 февраля 2019

Есть два способа получить выбранное значение:

Используйте обратный вызов, как у вас есть, но не смотрите на .val().Вместо этого возьмите значение из объекта ui:

$('#pais').on('autocompleteselect', function (e, ui) {
    var ultimo = ui.item.value;
    // ...etc

Или просто прослушайте событие autocompletechange вместо autocompleteselect.Ваше autocompleteselect событие вызывает до , значение изменяется, но autocompletechange запускает после it:

$('#pais').on('autocompletechange', function () {
    var ultimo = $(this).val();
    // ... etc

Еще одно замечание, не связанное с вашим вопросом:

$(function() { .... }) - это сокращение от $(document).ready(function() {.... }), поэтому нет необходимости снова вызывать ready, когда вы уже используете функцию обратного вызова первой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...