Google
充满了这类问题,但我想我的问题有点不同。
不同之处在于我使用masked input
我使用了jquery.maskedinput-1.2.2.js
和jquery-1.7.2.min.js
来使用masked inputs
。屏蔽代码是
$(document).ready(
function () {
$("#txtPhoneNo").mask("?(999) 999-9999");
});
但它没有验证输入的长度,所以我为此写了javascript
并使用了'CustomValidator',如下所示。
function isPhoneNumberValid(sender, args) {alert("l");
if (args.value.length < 2)
args.isValid = false;
}
alert("l");
本身会告诉您我只是想知道这个js function
是否会被激活。
textbox
和CustomValidator
的代码如下。
<asp:TextBox ID="txtPhoneNo" runat="server" CssClass="textbox3" size="60" Width="350px"
TabIndex="4" ClientIDMode="Static"></asp:TextBox>
<span style="font-size: 12px;">(000-000-0000)</span>
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Phone number is not valid"
ClientValidationFunction="isPhoneNumberValid" Font-Size="9pt" ForeColor="Red" ControlToValidate="txtPhoneNo"></asp:CustomValidator>
注意
使用textbox
ClientIDMode="Static"
这可能是个问题。
问题
问题是我的js function
根本没有开火。如果文本长度小于2但未显示,则必须显示警告,而不是回发。
任何人都可以帮助我。 感谢
答案 0 :(得分:4)
您的主要问题是,Textbox为空,因此在用户键入Textbox中的任何值之前不会分配任何args,因此不会调用该函数。如果您在文本框中键入任何值,那么自定义验证器工作正常,因此您需要RequiredFieldValidator
。
尝试使用此代替代码
<script>
function isPhoneNumberValid(sender, args) {
alert("l");
if (args.Value.length < 2)
args.isValid = false;
}
</script>
<h3>We suggest the following:</h3>
<asp:TextBox ID="txtPhoneNo" runat="server" CssClass="textbox3" size="60"
Width="350px" TabIndex="4"></asp:TextBox>
<span style="font-size: 12px;">(000-000-0000)</span>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ValidationGroup="xxx" ControlToValidate="txtPhoneNo" Font-Size="9pt"
Display="Dynamic" ForeColor="Red" ErrorMessage="This field is Empty">
</asp:RequiredFieldValidator>
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage=
"Phone number is not valid" ClientValidationFunction="isPhoneNumberValid"
Font-Size="9pt" ForeColor="Red" ValidationGroup="xxx" Display="Dynamic"
ControlToValidate="txtPhoneNo">
</asp:CustomValidator>
<asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="xxx" />
首先需要检查asp:RequiredFieldValidator,然后使用自定义验证器
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ValidationGroup="xxx" ControlToValidate="txtPhoneNo" Font-Size="9pt"
Display="Dynamic" ForeColor="Red" ErrorMessage="This field is Empty">
</asp:RequiredFieldValidator>