2011-05-15 51 views
1

訪問ASP.Net LoginControl密碼字段我使用ASP.Net LoginControl進行用戶驗證:通過JavaScript

<asp:Login ID="Login1" runat="server"> 
     <LayoutTemplate> 
      <asp:TextBox id="UserName" runat="server" class="inD"></asp:TextBox> 
      <asp:TextBoxWatermarkExtender ID="UserNameWatermarkExtender" runat="server" TargetControlID="UserName" WatermarkText="Username" WatermarkCssClass="weD inD"/> 
      <asp:TextBox id="Password" runat="server" class="inD" textMode="Password" onfocus="passwordFocus()" onblur="passwordBlur()"></asp:TextBox> 
      <asp:TextBoxWatermarkExtender ID="PasswordWatermarkExtender" runat="server" TargetControlID="Password" WatermarkText="Password" WatermarkCssClass="weD inD"/> 
      <asp:button id="Login" CommandName="Login" runat="server" Text="Login" class="btL" BorderStyle="None"></asp:button> 
      <br /> 
      <asp:Checkbox id="RememberMe" runat="server" Text="Remember me"></asp:Checkbox> 
      <asp:requiredfieldvalidator id="UserNameRequired" runat="server" ControlToValidate="UserName" Text="*"></asp:requiredfieldvalidator> 
      <asp:requiredfieldvalidator id="PasswordRequired" runat="server" ControlToValidate="Password" Text="*"></asp:requiredfieldvalidator> 
      <asp:Literal id="FailureText" runat="server"></asp:Literal> 
     </LayoutTemplate> 
    </asp:Login> 

現在我想訪問密碼箱:通過JavaScript(ID密碼)。我試過

document.getElementById('Password'); 

但這不起作用。 感謝您的任何建議,

亞歷山大

回答

1

ASP.NET(取決於你在框架的版本),喜歡裂傷客戶端ID。我已經得到了這樣的過去,像這樣:

<script type="text/javascript"> 
var passwordId = '<%= Password.ClientID %>'; 
</script> 

似乎有點骯髒,但它的作品!

編輯:

我看你是在一個LoginForm的控制。試試這個:

<script type="text/javascript"> 
var passwordId = '<%= ((TextBox)LoginForm.FindControl("Password")).ClientID %>'; 
</script> 
+0

感謝您的回覆。不幸的是,我得到一個編譯器錯誤,說,「密碼沒有聲明」。代碼如下所示: inD1 = document.getElementById('<%= Password.ClientID%>');你有一個想法,哪裏出了問題?謝謝亞歷山大 – alxppp 2011-05-15 20:07:44

+0

我在ASP.Net 4.0上運行。 – alxppp 2011-05-15 20:15:55

+0

已編輯。現在就試試。 – BradBrening 2011-05-15 20:27:29