我在服务器端练习客户端验证。我在客户端编写了一个代码来验证名称,它正在重新调整值。但问题是,对于不正确的值,一旦焦点从文本框中丢失,就不会显示错误消息。 我的实现如下:
更新
<script type="text/javascript">
function validateText(osrc, args) {
var textvalue = args;
var pattern = /^[a-zA-Z.]{3,25}$/
if (textvalue != null || textvalue != "") {
if (pattern.test(textvalue)) {
args.isValid = true;
}
else
args.isValid = false;
}
else args.isValid = false;
return;
}
</script>
和aspx页面内容
<asp:TextBox runat="server" ID="txtFirstName" CssClass="form-control" />
<asp:CustomValidator runat="server" Display="Dynamic" CssClass="text-danger"
ControlToValidate="txtFirstName" ToolTip="Incorrect Text" ErrorMessage="*"
EnableViewState="false" ValidateEmptyText="true" EnableClientScript="true"
Enabled="true" ClientValidationFunction="validateText"></asp:CustomValidator>//This validator is not showing the error message
它出了什么问题,需要帮助。
答案 0 :(得分:2)
您必须将 args.IsValid 的值设置为 TRUE 或 FALSE ,而不是仅返回 true / false < / em>的。您还需要使用 args.Value (注意V为大写)来正确设置 textvalue 。并且您只应该在表达式有效时返回:
<强> JavaScript的:强>
function validateText(osrc, args) {
var textvalue = args.Value; //notice V is uppercase!
var pattern = /^[a-zA-Z.]{3,25}$/
if (textvalue != null || textvalue != "") {
if (pattern.test(textvalue)) {
args.IsValid = true;
return; //notice we ONLY return when the expression IS valid
}
args.IsValid = false;
}
args.IsValid = false;
}
<强> ASPX:强>
<div class="col-md-10">
<asp:Label ID="Label1" runat="server" AssociatedControlID="txtFirstName"
CssClass="col-md-2 control-label">First Name</asp:Label>
<asp:TextBox runat="server" ID="txtFirstName" CssClass="form-control" />
<asp:CustomValidator ID="CustomValidator1" runat="server"
Display="Dynamic" ControlToValidate="txtFirstName"
ToolTip="Incorrect Text" ErrorMessage="*"
EnableViewState="false"
ValidateEmptyText="true"
EnableClientScript="true"
Enabled="true"
ClientValidationFunction="validateText">
Please input a valid First Name!
</asp:CustomValidator>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ControlToValidate="txtFirstName"
CssClass="text-danger"
ErrorMessage="First name is required"
ToolTip="First name is required."
EnableViewState="False" />
</div>