javascript - ASP.NET MVC5 Validación del lado del cliente
Tengo un campo de cantidad en una vista que es obligatorio si se marca una casilla de verificación.
Una vez que Razor representa la vista con los datos del modelo, y un usuario marca una casilla de verificación sin ingresar una cantidad correspondiente. Aparece el mensaje de Validación. Si anulo la selección de esa casilla, el mensaje de validación no desaparece.
He intentado usar jquery para eliminar todas las reglas generadas, pero si el usuario volviera a marcar la casilla de verificación antes de volver a publicar, esas reglas de validación se habrían eliminado.ed (a menos que los guarde... lo cual se está poniendo muy feo).
¿Existe alguna forma aceptable de volver a validar el lado del cliente con los mismos requisitos en el modelo MVC?
Modelo:
[Display(Name = "Include Amount")]
public bool IncludeAmount { get; set; }
[Display(Name = "Amount")]
[RequiredIf("IncludeAmount", TargetValue = true, ErrorMessage = "Amount is required.")]
[MaxDigits(10, 2)]
[RegularExpression(RegularExpressions.Money, ErrorMessage = ErrorMessages.NumericValueInvalidFormat)]
[GreaterThanZero]
public Nullable<decimal> Amount { get; set; }
Ver:
<td class="dataEntryLabel" colspan="2">
@Html.LabelFor(model => model.IncludeAmount)
</td>
<td class="dataEntryField" colspan="2">
@Html.CheckBoxFor(model => model.IncludeAmount, new { id = "IncludeAmount" })
<span class="dollar-sign">@Html.TextBoxFor(model => model.Amount, "{0:F}", new { id = "Amount", disabled = "disabled" })</span>
@Html.ValidationMessageFor(model => model.Amount)
</td>
JavaScript (lado del cliente):
function fixUnobtrusiveValidations() {
var form = getForm();
(<any>$).validator.unobtrusive.parse(form);
}
function onClickCheckBoxIncludeAmount(){
fixUnobtrusiveValidations();
}
$('IncludeAmount').click(onClickCheckBoxIncludeAmount);
------------Respuesta------------
Pruebe esto para deshabilitar la validación del lado del cliente en eventos onclick Consulte: https://jqueryvalidation.org/validate/#onclick
$("#myform").validate({
onclick: false,
});
O
$("#yourChkboxID").validate({
onclick: false,
});
------------Respuestar------------
Esto funcionó:
if (!($('#IncludeAmount').checked)){
toggleValidatorVisibility($('#Amount'), false);
}
function toggleValidatorVisibility(element: any, value) {
var td: any = element.closest('td');
if (value) {
td.find('span.field-validation-error').show();
} else {
td.find('span.field-validation-error').empty();
}
}
Etiquetas:
Artículos relacionados:
node.js: forma de facto de agregar subdominios (como jp en jp.sweet-website.org) para nodejs
powershell - Project Centennial: cómo editar el XML generado y llamar a MakeAppx.exe
- java - ¿Cómo redirigir desde el controlador de primavera?
- python: problema con las teclas múltiples que se presionan a la vez para un juego de dos jugadores
- python - Odoo - Dar una advertencia al editar algún campo con valor vacío
- ios: ¿cómo debo crear una clase de modelo para llamar a la API (usando el patrón MVC)?
- elasticsearch: no se puede indexar un archivo de más de 100 MB en la búsqueda elástica
- proceso - ¿Cómo esperar en bash a que finalicen varios subprocesos y devolver el código de salida! = 0 cuando cualquier subproceso termina con el código! = 0?
- Omitir un error de Java
- asp.net mvc - .net mvc agregar página de visualización por error de lanzamiento de andamios No hay ningún tipo de tienda correspondiente al tipo de lado conceptual, SByte, de tipo primitivo, SByte,
- ¿Cómo realizar/ejecutar una prueba de IU codificada como parte de la gestión de versiones en VSTS 2015?
- ios: ¿no recibe notificaciones automáticas de Firebase cuando la aplicación está abierta?
- ¿Cómo activar la actualización de la entidad en los datos de primavera?
- ios - ¿Cómo agregar diferentes restricciones dependiendo del tamaño de la pantalla del iPhone?
- javascript: obtenga el enlace de descarga único en Openload
- scala - Spark Streaming de Kafka y comparación con registros de Memsql (el conteo no es correcto)
- c# - Recuperar una imagen de la carpeta
Artículos calientes
- Los peligros de inhibir las prostaglandinas
- Que medicamento tomar para el dolor de hombro congelado
- ¿Cuál es el significado del divertículo intestinal?
- ¿Los niños del confinamiento pueden comer fruta?
- ¿Qué tan pronto puedo tener relaciones sexuales después de la cirugía de labios?
- Cuál es el mejor tratamiento para la espondilosis cervical
- Causas de la ruptura endometrial
- Cómo curar el reumatoide
- Cómo prevenir los pólipos intestinales
- Síntomas de la nefritis púrpura alérgica
- Cómo tratar la bronquitis y el asma
- ¿Se puede curar la artrosis de rodilla?
- ¿Qué causa la úlcera gástrica duodenal?
- rinitis alérgica
- ¿Cuál es la diferencia entre la tuberculosis bronquial y la tuberculosis pulmonar?