2012-07-03 3 views
1

Я создал простой раскрывающийся список, который заполняется из предыдущего раскрывающегося списка.Выбрать все в раскрывающемся списке PHP

Как сделать все выбранным?

Ниже приведены коды для заполнения javascript.

function OnClkAddButtonServer(form) 
{ 
    var selObj = document.getElementById('List1'); 
    var selObj2 = document.getElementById('List2'); 

     var i; 
     var count = selObj2.options.length; 

     for (i=0;i<selObj.options.length;i++) 
     { 
     if (selObj.options[i].selected) 
     { 
       var option = new Option(selObj.options[i].text,selObj.options[i].value); 
       option.title = selObj.options[i].text; 
       selObj2.options[count] = option; 
       count=count+1; 
       selObj.options[i] = null; 
       i--; 
     } 
     } 
} 

Заранее спасибо

+1

Возможно, вам стоит рассмотреть вопрос о пересмотре вашего вопроса. Имеет ли PHP какое-либо отношение к вашей проблеме? Кажется, что все, что вы хотите сделать, это выбрать все элементы в списке, который является проблемой HTML. –

+0

Пробовал ли вы var var = new Option (...); option.selected = true; '? –

ответ

1

Если вы пытаетесь иметь все параметры в списке можно выбрать, вам нужно HTML, чтобы выглядеть следующим образом.

<select multiple="multiple"> 
    <option selected="selected">Volvo</option> 
    <option selected="selected">Saab</option> 
    <option selected="selected">Mercedes</option> 
    <option selected="selected">Audi</option> 
</select> 

Чтобы изменить выбранный вариант, вы можете использовать Javascript-метод для изменения атрибутов HTML так.

document.getElementById("idElement").setAttribute("class", "className"); 

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

+0

Привет, я понимаю, что в html вы можете просто использовать selected = "selected".Но проблема в том, что мой раскрывающийся список пуст. Он заполняется кнопкой javascript, упомянутой сверху. Я не могу представить свою форму, потому что недавно заполненный выпадающий список не выбран. – smallcat31

+0

У меня есть кнопка, которая вызывает javascript сверху, чтобы заполнить этот новый раскрывающийся список. – smallcat31

+0

Обновлен мой ответ, чтобы включить пример изменения атрибутов. –

0

Прежде всего, если вы хотите, чтобы все варианты выпадающего списка были выбраны, вам необходимо убедиться, что тип выбора несколько.

Например, предположим, selObj2 относится к <select> теге (<select id = "List2">) вы хотели бы добавить «несколько» атрибут для выбора тега:

<select id = "List2" multiple = "multiple"> 

Если вы хотите сделать это в JS, вы можете вставить строку:

selObj2.setAttribute("multiple", "multiple"); 

или

selObj2.multiple = true; 

Это, конечно, предполагается, что selObj2 является тегом <select>. Тем не менее, вы должны включить несколько выборок для выбора нескольких параметров. После того, как вы включили этот атрибут, вы можете перейти к следующему этапу ...

Теперь, предполагая, что selObj2.options относится к отдельным параметрам, которые вы хотели бы выбрать, вы можете сделать это в JS (просто добавить этот блок прямо перед окончанием скобы для функции OnClkAddButtonServer):

for (var i=0; i<selObj2.options.length; i++) 
{ 
    selObj2.options[i].setAttribute("selected", true); 
    // or, 
    // selObj2.options[i].selected = true; 
} 

Также обратите внимание в течение цикла, который я использовал:

var i=0; 

Это потому, что мы создаем переменную я локальную для объем цикла, что означает, что если мы хотим использовать i ou Взаимосвязь цикла, два экземпляра не будут конфликтовать. Если вы не использовали ключевое слово «var», тогда переменная i будет доступна в любом месте всего скрипта (создаст глобальную переменную). Хорошая привычка держать переменные локальными, и поскольку люди склонны часто использовать i или x в качестве счетчиков в этих циклах, это необходимо принять во внимание, чтобы избежать каких-либо неприятных сюрпризов.

Смежные вопросы