带有case和switch的MVC应用程序

时间:2014-03-03 13:22:35

标签: asp.net-mvc-4 runtime switch-statement html.textboxfor

我正在构建 MVC 4 应用程序,我正在尝试禁用一个 TextBoxFor (或添加一些文本),如果另一个已输入TextBoxFor 。试图使用switch-case语句,但到目前为止没有运气。因为我必须添加文本/禁用其他 TextBoxFor ,所以必须在运行时中运行。

创建视图代码的一部分:

<div class="editor-label2"> 
 @Html.LabelFor(model => model.First)
 </div>
 div class="editor-field2">
  @Html.TextBoxFor(model => model.First, new {  @id = "id1"} )
  @Html.ValidationMessageFor(model => model.First)
 </div>

  <div class="editor-label3">
   @Html.LabelFor(model => model.Second)
  </div>
  <div class="editor-field3">
   @Html.TextBoxFor(model => model.Second, new {  @id = "id2"} )
   @Html.ValidationMessageFor(model => model.Second)
   </div>

和此:

@{ 
   switch (id1)
   {
     case 1:    
         <text> text1 </text>
         break;
     case 2:    
         <text> text2 </text>
         break;
     default:
         <text> text </text>
         break;
   }
}

1 个答案:

答案 0 :(得分:2)

您可以使用一些jquery来检测文本框是否具有值,否则将其禁用。

$('input:text').filter(function () { return $.trim($(this).val()) == ''; })
               .attr("disabled", true);

如果您想在用户输入值后(即在运行时)执行此操作,请将语句放在文本框的“on change”事件中。

$('input:text]').on('change', function ()
{
    $('input:text').filter(function () { return $.trim($(this).val()) == ''; })
                   .attr("disabled", true);
});