El validador de rango no funciona en el valor mínimo y máximo de asp.net
-
21-12-2019 - |
Pregunta
Yo he aplicado RangeValidator
en TextBox
.Pero siempre me muestra error:Rango no válido, aunque he dado un valor mínimo 10 y un valor máximo 25.Quiero que el usuario no ingrese un valor cuya longitud sea menor que 10 y mayor que 25.Quiero que el usuario pueda ingresar cualquier cosa, así que tengo type="string"
en RangeValidator
.Pero siempre me da mensaje de error:Rango no válido.
<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>
Solución
Para esto necesitarás usar un CustomValidator
control como sugiere Emad Mokhtar.
Para la validación del lado del servidor, cree un evento como este.
protected void TextValidate(object source, ServerValidateEventArgs e)
{
e.IsValid = (e.Value.Length >= 10 && e.value.Length <= 25);
}
Para la validación del lado del cliente, cree una función de JavaScript como esta.
<script type="text/javascript">
function validateLength(oSrc, args){
args.IsValid = (args.Value.length >= 10 && args.Value.length <= 25);
}
</script>
Luego, en su marcado aspx tenga el CustomValidator
controlar así.
<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>
Puedes encontrar más detalles aquí.
Otros consejos
Esta validación se puede implementar utilizando CustomValidator Control y aplique la validación del lado del cliente y se despliegue, busque la muestra aquí .
Recientemente observé esta función genial, solo use los atributos debajo de ASP Control / HTML. minlength="10" maxlength="1000"
A medida que los atributos establecen claramente, permite un mínimo de 10 caracteres y un máximo de 1000 caracteres.