我有一个母版页,在其中,我有:
<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;
}
但我的脚本不起作用,问题是什么?
答案 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");
}
});
<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()) {