2011-10-17 54 views
0

我是一个JavaScript/jQuery初学者。ASP.NET MVC灰色字段复选框= true

我试图灰化,禁用和更改单击复选框时的文本框的背景颜色。我在实施可能的在线解决方案时遇到了困难。

下面有我的工作代码:

<% using (Html.BeginForm()) { %> 
    <span id="errorMsg"> 
     <%:(ViewData["ErrorMessage"])%> 
    </span> 
    <div> 
     <fieldset> 
      <legend>Account Information</legend> 

      <div class="editor-label"> 
       <%: Html.LabelFor(m => m.UserName) %> 
      </div> 
      <div id="UserName" class="editor-field"> 
       <%: Html.TextBoxFor(m => m.UserName) %> 
       <%: Html.ValidationMessageFor(m => m.UserName) %> 
      </div> 

      <div id "Password" class="editor-label"> 
       <%: Html.LabelFor(m => m.Password) %> 
      </div> 
      <div class="editor-field"> 
       <%: Html.PasswordFor(m => m.Password) %> 
       <%: Html.ValidationMessageFor(m => m.Password) %> 
      </div> 
      <div id="checkBox" class="editor-field"> 
       <%: Html.CheckBoxFor(m => m.UseNetworkCreds %> Use Network Credentials 
       <%: Html.ValidationMessageFor(m => m.UseNetworkCreds)%> 
      </div> 


      <p> 
       <input type="submit" value="Log On" /> 
      </p> 

     </fieldset> 
    </div> 
<% } %> 

如何修改这个代码做什么,我提到?我希望复选框灰掉/禁用用户名和密码文本框。

回答

3

在代码中,你是与/迄今为止写过我看不到任何JavaScript。要达到您在问题中描述的目标,您需要编写一些JavaScript代码。例如,你可以认购.change()事件的复选框,然后切换在两个输入字段,东西长的线readonly属性:

$(function() { 
    $('#UseNetworkCreds').change(function() { 
     if ($(this).is(':checked')) { 
      $('#UserName, #Password').attr('readonly', 'readonly'); 
     } else { 
      $('#UserName, #Password').removeAttr('readonly'); 
     } 
    }); 
}); 
+0

难道仅CSS的解决方案是可能的? – bzlm

+0

@bzlm,不是我所知道的。至少它可能是静态的。但我认为切换复选框时它不会起作用。但我不是一个设计师。也许有一些CSS3巫术可以做到这一点。谁知道?另一方面,传统的JavaScript保证工作:-) –