Tengo un formulario muy simple con Tag Helper
<form asp-area="Admin" asp-controller="Categories" asp-action="EditCategory" method="post" id="CategoryForm"> <div class="row"> <div class="col-xl-4 col-lg-6 col-md-12 mb-1"> <fieldset class="form-group"> <input type="hidden" id="parentId" value="@ViewBag.parentId" /> <input type="hidden" id="Id" asp-for="Id" /> <label for="basicInput">Name</label> <input asp-for="Name" class="form-control" /> <span asp-validation-for="Name" class="text-danger"></span> </fieldset> </div> <div class="col-xl-12 col-lg-12 col-md-12 mb-1"> <fieldset class="form-group"> <button type="submit">Edit</button> </fieldset> </div> </div> </form>
Quiero 1: primero verifique la validación del formulario mediante el complemento de valoración del lado del cliente jquery 2: si está validado, obtenga una confirmación del usuario para enviar los datos
3- luego envíelo 4- si no es la anotación de datos que se muestra en la pantalla
Tengo este código jquery para la opción 2 y 3
$("#CategoryForm").submit(function (event) { event.preventDefault(); swal.fire({ title: 'Edit Category', text: "Are you sure?", icon: 'info', showCancelButton: true, confirmButtonColor: '#3085d6', cancelButtonColor: '#d33', confirmButtonText: 'Yes', cancelButtonText: 'No' }).then((result) => { if (result.value) { $("#CategoryForm").submit(); } }) });
en este caso, incluso el campo de entrada Nombre (la validación del formulario debe ser negativa) se envía la confirmación al usuario
Cómo puedo hacer esto ?
para lograr esto, debe instalar un paquete jquery personalizado llamado [validación jquery] . Asi es como se hace :
$("#CategoryForm").validate({ submitHandler: function(form) { swal.fire({ title: 'Edit Category', text: "Are you sure?", icon: 'info', showCancelButton: true, confirmButtonColor: '#3085d6', cancelButtonColor: '#d33', confirmButtonText: 'Yes', cancelButtonText: 'No' }).then((result) => { if (result.value) { form.submit(); } }) } });