2013-02-04 4 views
2

Я хочу динамически отключить/включить текстовое поле после этого флажка. Как мне это сделать? Я использую это:Как динамически отключить TextBox в MVC Razor?

@{ 
    object addInput = (Model.AddInput) ? null : new { disabled = "disabled" }; 

} 

@Html.CheckBoxFor(model=> model.AddInput) 

@Html.TextBoxFor(model => model.Input.Name, addInput) 

но он работает только при запуске. Щелчок по флажку ничего не меняет. Как можно сделать привязку к изменению автоматически отключить состояние?

+0

MVC зависит от языка шаблон дизайна. Кажется, что вы один из людей, который ссылается на IE как на «Интернет» и на ASP.NET MVC как «mvc». –

+0

Простите, сегодня я не спал хорошо;) Но вы можете мне помочь? –

ответ

7

Это должно быть сделано в javascript.

@{ 
    object addInput = (Model.AddInput) ? null : new { disabled = "disabled" }; 

} 

@Html.CheckBoxFor(model=> model.AddInput) 

@Html.TextBoxFor(model => model.Input.Name) 


<script> 
    $('#AddInput').click(function() { 
     var $this = $(this); 

     if ($this.is(':checked')) { 
      $('#Name').removeAttr("disabled"); 
     } else { 
      $('#Name').attr("disabled", "disabled") 
     } 
    }); 
</script> 
+1

Спасибо! Он работает, мне нужно было только изменить с #Name на #Input_Name :) –

0

Добавить действие jquery при щелчке на флажке и установить правильное состояние.

0

В случае, если вы хотите включить его по какой-то причине, вы можете использовать следующее:

 $('#Name').attr("disabled", false); 
Смежные вопросы