Необходимо обновить окно выбора Javascript в YUI 3, если ничего не выбрать?

StackOverflow https://stackoverflow.com/questions/1201898

  •  05-07-2019
  •  | 
  •  

Вопрос

Я использую YUI 3, чтобы позволить кому-то нажать «Выбрать все» или «Выбрать ничего», а затем выбрать в поле выбора все элементы или отменить выбор всех из них соответственно.Вот мой код:

// This selects all
    Y.on('click',function (e) {
            selectBoxNode.get("options").each(function () {
               this.removeAttribute('selected');
               this.setAttribute('selected','selected');
            });
        }, selectAllNode
    );

// This selects none
   Y.on('click',function (e) {
            selectBoxNode.get("options").each(function () {
               this.setAttribute('selected','false');
               this.removeAttribute('selected');
            });
            selectBoxNode.('selectedIndex',-1);
        }, selectNoneNode
    );

selectAllLink, selectNoneLink и selectBoxNode являются самоочевидными, правильно возвращаемыми узлами.Обновлять:selectAll работает, мне пришлось вручную удалить атрибут «выбранный» для каждого и добавить его заново.

SelectNoneLink не работает:он отменяет выбор только тех элементов, которые ранее не были выбраны...хотя проверка DOM показывает, что атрибут selectedIndex действительно изменен на -1, так что, возможно, его необходимо обновить?

Любая помощь будет оценена по достоинству.Если это произойдет во всех фреймворках, было бы неплохо об этом узнать.

Спасибо!

Это было полезно?

Решение

Это сработало для меня.

YUI().use('node', function(Y) {
   Y.get('#unsel').on('click', function(e) {
     Y.get('select').get('options').set('selected',false);
   });
   Y.get('#sel').on('click', function(e) {
     Y.get('select').get('options').set('selected', true );
   });
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top