范围验证器在 asp.net 最小值和最大值中不起作用
-
21-12-2019 - |
题
我已经申请 RangeValidator
在 TextBox
. 。但它总是显示错误:范围无效,尽管我给出了最小值 10 和最大值 25。我希望用户不能输入长度小于 10 且大于 25 的值。我希望该用户可以输入任何内容,所以我有 type="string"
在 RangeValidator
. 。但它总是给我错误消息:范围无效。
<td>
<asp:TextBox ID="tbPassword" runat="server" MaxLength="25" type="password">
</asp:TextBox>
<asp:RequiredFieldValidator ID="rfvPassword" runat="server"
ControlToValidate="tbPassword" ForeColor="red" Display="Dynamic"
ErrorMessage="Password is required." SetFocusOnError="true">
</asp:RequiredFieldValidator>
<asp:RangeValidator ID="rvPassword" ControlToValidate="tbPassword"
ForeColor="red" Display="Dynamic" MinimumValue="10" MaximumValue="25"
SetFocusOnError="true" Type="String" runat="server"
ErrorMessage="Invalid Range">
</asp:RangeValidator>
</td>
解决方案
为此,您需要使用 CustomValidator
按照 Emad Mokhtar 的建议进行控制。
对于服务器端验证,创建一个像这样的事件。
protected void TextValidate(object source, ServerValidateEventArgs e)
{
e.IsValid = (e.Value.Length >= 10 && e.value.Length <= 25);
}
对于客户端验证,创建一个像这样的 JavaScript 函数。
<script type="text/javascript">
function validateLength(oSrc, args){
args.IsValid = (args.Value.length >= 10 && args.Value.length <= 25);
}
</script>
然后在你的 aspx 标记中有 CustomValidator
像这样控制。
<asp:Textbox id="tbPassword" runat="server" text=""></asp:Textbox>
<asp:CustomValidator id="customValidator" runat="server"
ControlToValidate = "tbPassword"
OnServerValidate="TextValidate"
ErrorMessage = "Password must be between 10 to 25 characters!"
ClientValidationFunction="validateLength" >
</asp:CustomValidator>
您可以找到更多详细信息 这里.
其他提示
此验证可以使用 CustomValidator 控件来实现并应用您的客户端和服务器端验证,请查找示例 这里.
我最近观察到这个很酷的功能,只需在 asp control/html 中使用以下属性即可。最小长度=“10” 最大长度=“1000”
正如属性明确指出的,它允许最少 10 个字符,最多 1000 个字符。
不隶属于 StackOverflow