¿Cómo puedo deshabilitar el botón después de enviar el formulario con la validación del modelo en asp.net core?
código:
<form action="/AddComment" method="post" id="InsertCommentForm"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <input type="hidden" asp-for="ProductId" /> <input type="hidden" asp-for="ParentId" value="" id="reply" /> <input asp-for="Email" id="Email" class="form-control mrg15B" placeholder="لطـفا یک ایمیل معتبر وارد کنید"> <span asp-validation-for="Email" class="text-danger"></span> <input asp-for="FullName" id="FullName" class="form-control mrg15B" placeholder="لطـفا نام خود را وارد کنید"> <span asp-validation-for="FullName" class="text-danger"></span> <textarea asp-for="Text" id="Text" class="form-control mrg15B area" cols="60" rows="5" placeholder="لطفا متن پیام را وارد کنید"></textarea> <span asp-validation-for="Text" class="text-danger"></span> <br /> <input type="submit" value="ارسال" id="InsertCommentBtn" class="btn btn-warning"> </div> </form>Probé varias veces, pero si el modelo de validación comienza a funcionar y evita que se publique el formulario, el botón Deshabilitar permanece.
Gracias
Necesita usar el método de validate() en jquery.validate.js ( se ha hecho referencia al archivo js en _ValidationScriptsPartial.cshtml de forma predeterminada ) para validar el formulario. Solo cuando la validación pasó, el botón estaría deshabilitado:
@section Scripts { @{await Html.RenderPartialAsync("_ValidationScriptsPartial");} <script> $("#InsertCommentForm").on("submit", function(event) { var validator = $("#InsertCommentForm" ).validate(); var flag = validator.form(); if(flag) { $('input[type="submit"]').attr('disabled',true); } }); </script> }