启用默认禁用的字段

时间:2012-03-27 10:29:57

标签: javascript ruby-on-rails

我有以下代码,如果选择“其他”,则显示并启用隐藏字段,否则该字段将从视图中隐藏并禁用。

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;”似乎无法启用它。

任何建议都表示赞赏。

2 个答案:

答案 0 :(得分:1)

启用

您需要完全从输入中删除disabled属性。

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

停用

要成为有效的XHTML,您需要设置disabled="disabled"

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

答案 1 :(得分:1)

我认为你应该为select和text_field指定id以避免重复的id。在你的情况下,select和text_field将具有相同的id,并且js可能会搞乱。