簡體   English   中英

在PHP下拉列表中全選

[英]Select all in PHP dropdown list

我創建了一個簡單的下拉列表,該列表是從上一個下拉列表填充的。

如何選擇全部?

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

提前致謝

如果嘗試選擇列表中的所有選項,則需要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,但是如果您以另一種方式引用了該元素,則可以跳過浪費的查找。

首先,如果要選擇所有下拉選項,則需要確保選擇類型為多個。

例如,假設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作為計數器,因此要采取一定的預防措施,以避免出現任何令人討厭的意外情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM