JQuery RemoveAttr не работает - PullRequest
       6

JQuery RemoveAttr не работает

0 голосов
/ 18 января 2012

Здравствуйте, я пытаюсь использовать плагин выпадающего списка автозаполнения, имя которого UFD.В любом случае, у меня есть выпадающий список, и я хочу получить это выбранное значение (или текст) в codebehind click_event.Если я могу удалить все выбранные атрибуты из выпадающего списка и добавить выбранный атрибут к выбранной опции, это будет работать. Но этот метод удаления не работает :( Пожалуйста, помогите мне.*

Ответы [ 4 ]

1 голос
/ 18 января 2012

element уже является объектом jQuery, поэтому вам не нужно использовать $() для него. Обычно мы добавляем $ к имени переменной, если это объект jQuery. Попробуйте это.

$(function () {
    var $element = $("#DropDownList1");
    $element.change(function () {
       var val = this.value;
       $element.find('option').removeAttr('selected')
       .filter("[value=" + val + "]")
       .attr("selected", "selected");
    });
});
1 голос
/ 18 января 2012

Вы создаете объекты jQuery из объектов jQuery, у которых есть проблема в этой строке (я предполагаю):

$(element + "option[value=" + $(element).val() + "]").attr("selected", "selected");

Поскольку element является объектом jQuery (ключевое слово, объект), и вы добавляете строку к этому объекту.

Попробуйте это:

$(function () {
    var element = $("#DropDownList1");
    element.change(function () {
        var theVal = element.val();//get the current value since it will be removed on the next line
        element.find('option').removeAttr('selected'); //this is not working
        element.find("option[value=" + theVal + "]").attr("selected", "selected");
    });
});

Вот демоверсия: http://jsfiddle.net/LjhwW/1/

При создании этого демо я понял то же самое, что и «не я» (в комментариях). Почему вы вручную изменяете выбранный элемент опции для события change, браузер все равно сделает это.

0 голосов
/ 18 января 2012

Установите для свойства selectedIndex SELECT значение -1, чтобы очистить выбранный элемент.

0 голосов
/ 18 января 2012

Правильный способ изменить выбранное значение выбора с помощью jquery - установить его значение.

$("#DropDownList1").val("new-selected-value")
...