Обновление Javascript Selectbox необходимо в YUI 3, при выборе нет? - PullRequest
1 голос
/ 29 июля 2009

Я использую 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 работает, мне пришлось вручную удалить атрибут «selected» для каждого и повторно добавить его.

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

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

Спасибо!

1 Ответ

1 голос
/ 30 июля 2009

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

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 );
   });
});
...