在PHP下拉列表中选择全部

时间:2012-07-03 17:57:34

标签: php javascript html

我创建了一个简单的下拉列表,该列表是从上一个下拉列表中填充的。

如何选择全部?

下面提到的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--;
         }
      }
}

提前致谢

2 个答案:

答案 0 :(得分: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");

此示例要求您知道元素的ID,但如果您以其他方式引用该元素,则可以跳过浪费的查找。

答案 1 :(得分:0)

首先,如果您想要选择所有下拉选项,则需要确保选择类型为多个。

例如,假设selObj2引用<select>标记(<select id = "List2">),您可能希望将“multiple”属性添加到select标记:

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

另外,请注意我使用的for循环:

var i=0;

这是因为我们在循环范围内创建了本地变量i,这意味着如果我们想在循环之外使用i,那么这两个实例不会发生冲突。如果您没有使用关键字“var”,那么变量i将可以在整个脚本中的任何位置访问(创建一个全局变量)。将变量保持在本地是一个好习惯,因为人们经常在这些循环中使用i或x作为计数器,所以要采取一些预防措施以避免任何令人讨厌的意外。