为什么我的jquery脚本在我继承自MasterPage的webform中不起作用?

时间:2014-02-25 10:35:53

标签: javascript jquery asp.net master-pages

我有一个母版页,在其中,我有:

<script src="Script/jquery.min.js"></script>
<link href="Stylesheet/Master.css" rel="stylesheet" />

我有一个webform(名称= Login.aspx),它继承自我的母版页,在Login.aspx中我有:

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">

     <input id="t1" type="password" placeholder="Passwords" class="login-input-class1" runat="server"  ClientID="Static" />
     <input id="t2" type="text" placeholder="ConfirmPasswords" class="login-input-class1" runat="server"  ClientID="Static"/>
     <label class="display" id="lblerror">Error</label>

 <script>

      $(document).ready(function () {

          $("#t2").change(function () {
              if ($("#t1").val() === $("#t2").val()) {
                  $("#lblerror").addClass("display");
              }

              else {
                  $("#lblerror").removeClass("display");
              }
          });
      });

</script>                    

</asp:Content>

在Master.css中我有:

.display {
 display:none;

}

但我的脚本不起作用,问题是什么?

2 个答案:

答案 0 :(得分:5)

因为ID在运行时更改。您应该使用ClientId作为控件。

您还可以使用ClientIDMode="Static"来停止将ID格式更改为原始格式 有关client id mode

的更多详情
$("#<%= Control.ClientID %>").addClass("display");

  $("#<%=t2.ClientID %>").change(function () {
                if ($("#<%=t1.ClientID %>").val() === $("#<%=t2.ClientID %>").val()) {
                   $("#lblerror%>").addClass("display");
                }
               else {
                   $("#lblerror").removeClass("display");
                }
            });

编辑1

<input id="t1" type="password" placeholder="Password" class="login-input-class1"
        runat="server" />
<input id="t2" type="text" placeholder="ConfirmPassword" class="login-input-class1"
        runat="server" />

和jQuery

 $(document).ready(function () {
        $("#<%=t2.ClientID %>").change(function () {
            if ($("#<%=t1.ClientID %>").val() === $("#<%=t2.ClientID %>").val()) {
                $("#lblerror%>").addClass("display");
            }
            else {
                $("#lblerror").removeClass("display");
            }
        });
    });    

答案 1 :(得分:0)

似乎你想要:

if ($("#t2").val() === $("#t1").val()) {

或:

if ($(this).val() === $("#t1").val()) {

而不是:

if ($("#t1").val() === $("#t1").val()) {