2010-05-25 146 views
0

我有下面的代碼隱藏第一項:如何從一個HTML選擇標籤

<select> 
    <option value="0">Option 0</option>. 
    <option value="1">Option 1</option> 
    <option value="2">Option 2</option> 
</select> 

當你點擊選擇我想的第一個項目將不再列出。它也必須適用於所有瀏覽器。如何才能做到這一點?

謝謝。

+4

聽起來你正在使用的第一選項爲一個''

+0

標記的外觀如何? – Emanuel 2010-05-25 06:06:38

+1

@David - 把它寫成答案,因爲它是正確的。 – annakata 2010-05-25 06:55:00

回答

0
<select id="selectBox" 
    onFocus="javascript:nullOpt=document.getElementById('nullOpt'); 
      (undefined != nullOpt) ? 
      document.getElementById('selectBox').removeChild(nullOpt) : 
      true;" 
    onBlur="javascript:insertBefore(
          nullOpt, 
          document.getElementById('selectBox').firstChild 
        );"> 
    <option id="nullOpt">Please select...</option> 
    <option>val1</option> 
    <option>val2</option> 
    <option>val3</option> 
</select> 

編輯:增加了新要求的功能,排序。

+0

除非您選擇任何項目並且「選擇」標籤失去焦點如何重新顯示第一個元素? – Emanuel 2010-05-25 17:32:11

+0

你沒有提到你想重新顯示它,我假設如果他們專注於選擇框,那麼他們會知道在那個時候選擇一些東西。您可以將nullOpt指定給另一個變量,並在需要時將其重新添加到Blur上。 – mVChr 2010-05-25 18:33:43

+0

固定顯示如何做到這一點,但我認爲這將清除他們的選擇。您可能想重新考慮您的功能規格。 – mVChr 2010-05-25 20:34:36

0

嗯不知道編輯這樣的集合是否會100%的時間工作。如果您不提供選擇項目的值,那麼您應該能夠拋出驗證錯誤,因爲沒有選擇「值」。

<select> 
    <option value="">Select a value...</option> 
    <option value="1">Option 1</option> 
    <option value="2">Option 2</option> 
</select> 

然後使用其中一個JQuery validation libraries來驗證它。

+0

我不需要驗證。我想僅爲信息顯示第一個選項。 – Emanuel 2010-05-25 07:07:41

+0

這是'

2

只需在第一個選項中添加display:none即可。第一個選項只會顯示爲選擇框的「標題」,而不會顯示在選項中。它適用於Chrome瀏覽器的Firefox &。

<select> 
 
    <option style="display:none;" value="0">Option 0</option>. 
 
    <option value="1">Option 1</option> 
 
    <option value="2">Option 2</option> 
 
</select>