2012-03-27 82 views
1

我有以下代碼,如果選擇「其他」,則顯示並啓用隱藏字段,否則該字段將隱藏而不可見。啓用默認情況下禁用的字段

Type: <%= f.select(:origin_type, 
     [['origin X', 'x'], 
      ['Other', 'Other'], 
      ['Origin Y', 'y'] 
      ], 
     {:prompt => "Please select"}, 
     {:onchange => "if (this.value == 'Other') 
     {document.getElementById('otherOrigin').style.display = 'block'; 
     document.getElementById('otherSpecies').disabled = false ;} 
     else 
     {document.getElementById('otherSpecies').style.display = 'none'; 
     document.getElementById('otherSpecies').disabled = true ; }" 
     } 
     ) %> 



<span id="otherOrigin" style="display:none;"> If other, please state: <%= f.text_field :origin_type, :disabled=>true %></span> 

默認情況下,text_field「otherOrigin」隱藏和禁用,但我想顯示,如果「其他」,選擇啓用它。 代碼「document.getElementById('otherSpecies').disabled = false;」在選擇其他選項時似乎無法啓用。

任何建議是非常感謝。

回答

1

使

您需要刪除disabled從輸入完全屬性。

document.getElementById('otherSpecies').removeAttribute("disabled") ; 

禁用

要你需要設置disabled="disabled"有效的XHTML。

document.getElementById('otherSpecies').disabled = "disabled" ; 
1

我認爲你應該爲select和text_field指定id以避免重複的id。在你的情況下,選擇和text_field將具有相同的ID和JS可能會搞砸。

相關問題