Плагин jQuery UI "CHOSEN": опция удаления в списке выбора не работает - PullRequest
0 голосов
/ 27 октября 2018

У меня есть список параметров, сгенерированных на стороне сервера, например:

<select id="chosen">
    <option value="1">select 1</option>
    <option value="2">select 1</option>
    <option value="3">select 1</option>
    <option value="4">select 1</option>
    <option value="5">select 1</option>
</select>

в зависимости от выбранной опции данные будут извлечены с сервера и добавлены в таблицу (строку)

То, чего я хочу достичь, - это когда я выбираю элемент из списка опций (используя onChange), я хочу удалить этот выбранный элемент из списка (чтобы я не повторил повторный выбор этого же элемента по ошибке)

Я скомпилировал следующий скрипт onChange

    $("#chosen").change(function() {

        var data = "";
        var val = $("#chosen option:selected").val();           

        $.ajax({
            type:"GET",
            url : "pull_cust_inv.php",
            data : "invId="+$( "#chosen option:selected" ).val(),
            async: false,
            success : function(data) {
                $("#inv_list").append(data);
                //$("#chosen option:selected").remove();
            },
            error: function() {

                alert('Error occured');
            }
        });

        // REMOVE SELECTED OPTION
        $("#chosen option[value="+val+"]").remove();
    });

Однако, по какой-то странной причине, опция все еще появляется в списке (не удаляет себя), но когда я выбираю ее во второй раз, она не выбирается.

Может кто-нибудь посоветовать, что не так в моем коде?

Ответы [ 2 ]

0 голосов
/ 27 октября 2018

Я сам понял ответ.Я использую «выбранный» плагин jquery для выпадающего списка выбора, поэтому традиционный метод (ниже) не будет работать

$("#chosen option[value="+val+"]").remove();

Решение , если кто-то использует метод i 'Реализованный с помощью «selected» (плагин jquery), правильный способ удалить выбранную опцию состоит в том, чтобы написать следующие строки:

$("#chosen option[value="+val+"]").remove();
$("#chosen").trigger("chosen:updated");

что означает, что после того, как вы «удалите» элемент option, выдолжен вызывать метод «selected: updated».

Это подразумевается только в том случае, если вы используете выбранный плагин Jquery UI.

Надеюсь, он кому-нибудь поможет:)

0 голосов
/ 27 октября 2018

Ваш Пропавший '' на вашем удалении

Попробуйте заменить

$("#chosen option[value="+val+"]").remove();

с

$("#chosen option[value='"+val+"']").remove();

...