javascript-自定义验证程序中的ClientValidationFunction无法触发
作者:互联网
Google充满了这样的问题,但我想我的问题有点不同.
区别是在这里我使用了蒙版输入,我包括了jquery.maskedinput-1.2.2.js和jquery-1.7.2.min.js来使用蒙版输入.屏蔽代码为
$(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函数是否触发.
文本框和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>
注意
这里在文本框中使用ClientIDMode =“ Static”,这可能是有问题的.
问题
问题是我的js函数根本没有触发.如果文本的长度小于2,但必须显示警报,但不显示,而是回发.
谁能帮我.
谢谢
解决方法:
您的主要问题是,文本框为空,因此在用户在文本框中键入任何值之前不会分配任何参数,因此不会调用该函数.如果在文本框中键入任何值,则自定义验证程序运行良好,因此需要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>
标签:customvalidator,asp-net,javascript,jquery 来源: https://codeday.me/bug/20191029/1963134.html