Отключить и включить текстовое поле при проверке нажмите - PullRequest
0 голосов
/ 10 марта 2011

Если флажок установлен, текстовое поле должно быть включено, иначе текстовое поле должно быть отключено.

Не знаете, почему этот код не работает?

<script type="text/javascript">
function toggleTB(what){
if(what.checked){document.test.from_address.disabled=1}
else{document.test.from_address.disabled=0}}
</script>

<% form_for(@test,:name => "test") do |f| %>
<table>
        <tr>
            <td class="right upcase none">
              <%= f.label 'text_enabled', "Enable",:class => "capitalize none" %>
              <%= f.check_box :text_enabled,:onclick => "toggleTB(this)" %>
            </td>
        </tr>

        <tr>
            <td class="right upcase none">
              <%= f.label 'from_address', "From Address",:class => "capitalize none" %>
            </td>
            <td>
              <%= f.text_field 'from_address', :maxlength => 16 %>
            </td>
        </tr>
</table>
<% end %>

Есть идеи?

Ответы [ 5 ]

1 голос
/ 10 марта 2011

Попробуйте установить disabled = true и disabled=false .. также идентификатор текстового поля будет test_from_address, а имя будет test[from_address].

1 голос
/ 10 марта 2011
Try like this

<script type="text/javascript">
   function toggleTB(what){
      if(what.checked){document.getElementById('from_address').disabled=1}
   else{document.getElementById('from_address').disabled=0}}
</script>

<input type="checkbox" name="toggle" onclick="toggleTB(this)"/>
<input type="input" id="from_address" />
0 голосов
/ 13 марта 2013
$(function()
    {
        $("#dropdown").change(function()
        {
            if ($(this).val()== "option1")
            {
                $("#textbox1").removeAttr("disabled");
                $("#textbox2").removeAttr("disabled");
            }
            else 
            {
                $("#textbox2").attr("disabled", "disabled");
                $("#textbox2").attr("disabled", "disabled");
            }
        });
        $("#PaymentMode").change(function()
        {
            if ($(this).val()== "option2")
            {
                $("#textbox3").removeAttr("disabled");
                $("#textbox4").removeAttr("disabled");
                $("#textbox5").removeAttr("disabled");
            }
            else
            {
                $("#textbox3").attr("disabled", "disabled");
                $("#textbox4").attr("disabled", "disabled");
                $("#textbox5").attr("disabled", "disabled");
            }
        });
    });
0 голосов
/ 10 марта 2011

Это сработало для меня ..

<script type="text/javascript">
  <!--
function toggleTB(what){
 document.getElementById("test_from_address").disabled = !what.checked;
}
-->
</script>

<% form_for(@test,:name => "test") do |f| %>
<table>
        <tr>
            <td class="right upcase none">
              <%= f.label 'text_enabled', "Enable",:class => "capitalize none" %>
              <%= f.check_box :text_enabled,:onclick => "toggleTB(this)" %>
            </td>
        </tr>

        <tr>
            <td class="right upcase none">
              <%= f.label 'from_address', "From Address",:class => "capitalize none" %>
            </td>
            <td>
              <%= f.text_field 'from_address', :maxlength => 16 %>
            </td>
        </tr>
</table>
<% end %>
0 голосов
/ 10 марта 2011

Попробуйте установить disabled=disabled в конце строки 3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...