2012-01-24 57 views
0

我有2個選擇相同的ID以及名稱框,但一次只顯示一個。2選擇相同的ID,但一個隱藏的框

但是,當表單發佈我沒有得到確切的價值。它只顯示下拉的第一個值。

以下是相同的示例代碼。

<?php 
    var_dump($_POST) 
?> 



<form method="POST" action=""> 
    <select name="test" id="test"> 
     <option value="0">0</option> 
     <option value="1">1</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
    </select> 

     <select name="test" id="test" style="display:none" > 
      <option value="0">0</option> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      <option value="3">3</option> 
     </select> 

    <input type="submit" value="Add"/> 
</form> 

我甚至嘗試圍繞選擇框與div,然後隱藏它。

+9

身份證應該是'唯一的' - > http://www.w3schools.com/tags/att_standard_id.asp – Rikesh

+0

我不知道這個問題應該得到2票嗎? – Rikesh

回答

3

不知道爲什麼你有兩個選擇名稱相同,但是當你隱藏一個選項時,你也需要禁用它(disabled="disabled")。

根據HTML規範,未提交禁用的字段,因此您應該從未禁用的select中發佈真實值。

+0

謝謝你的工作,以前沒有點擊過我...... –

0

你將不得不有不同的ID,並在你的代碼有條件地檢查哪些選擇框值是可見的獲取它的價值。

0

當您提交表單時,POST數據包含基於屬性name的數據。如果它們具有相同的名稱,則第二個選擇的值將覆蓋從第一個中選擇的值。即使你將其隱藏在頁面中。

如果您只想要第一個選擇的值,您應該通過添加disabled="disabled"或更改其名稱來禁用第二個選擇的值。

1

想必您使用一些JavaScript來切換顯示哪個選擇?

如果是這樣的話,然後開始了與

<select name="test" id="test"></select> 
<select name="test_dummy" id="test_dummy" style="display:none" ></select> 

而取其代碼更改樣式屬性也必須更改名稱和ID屬性

0

即使其中一個在每一個被隱藏點,它們應該在標記中有不同的名稱,以便您可以確定哪個是哪個。

否則,它只會通過表單中的最後一個元素(在標記中)值(不管它是否通過CSS隱藏)。

我不太確定爲什麼你一次只隱藏/顯示其中一個。如果您將select中的<option>替換爲新的,而不是使用show/hide,它可能會更好。

相關問題