Html.BeginForm usando onSubmit para validar

Estoy intentando enviar un formulario, sin embargo, he agregado algunos jQuery para la validación que funciona:

$(function validateForm() { $("#newMonoReading").on('focusout', function () { var str = ""; var initialMonoReading = $('#InitialMonoReading').val(); var newMonoReading = $('#newMonoReading').val() if (~~newMonoReading < ~~initialMonoReading) { $('#MonoErrorMessage').text("New Mono Readings must be MORE than existing"); $('#MonoErrorMessage').show(); return false; } else { $('#MonoErrorMessage').hide(); } }); }); 

Pero el problema está en el botón enviar.

   

Si hay un error, el botón de envío aún funciona, lo necesito para no mostrar mensajes de error y luego enviarlo, pero intenté usar el comando onsubmit para el formulario pero no funciona, aún así se envía aunque el valor es menor y el mensaje de error está mostrando.

Este es el html.BeginForm. Creo que el error puede estar aquí. No estoy muy seguro.

  

Algunas ideas

Si estoy en lo cierto, entonces en el envío desea validar su formulario con su función jQuery … y si se pasa la validación, entonces desea que se continúe el envío. De lo contrario, desea que se cancele el envío. Si estoy equivocado, por favor, rellene Tu pregunta un poco más.

De lo contrario, puede cambiar su función jQuery a –

 $(function validateForm(event) { event = event || window.event || event.srcElement; var initialMonoReading = $('#InitialMonoReading').val(); var newMonoReading = $('#newMonoReading').val() if (~~newMonoReading < ~~initialMonoReading) { $('#MonoErrorMessage').text("New Mono Readings must be MORE than existing"); $('#MonoErrorMessage').show(); event.preventDefault(); } else { $('#MonoErrorMessage').hide(); } }); 

y mientras creas el marcado, usa la siguiente linea

 @using (Html.BeginForm("Save", "ReadingsEntry", FormMethod.Post, new { enctype = "multipart/form-data", onsubmit = "validateForm(event)" })) 

Aunque, no revisé su código, pero debería funcionar. Por favor, inténtelo y háganoslo saber

Esto funciono para mi

 function validateForm() { if ($('#newMonoReading').val() == 'bla bla bla') { alert('bla bla bla'); return false; } else { form1.submit(); } @using (Html.BeginForm("action", "controller", FormMethod.Post, new { @id = "form1"})) { 
}

Esto es lo que funcionó para mí,

 @using (Html.BeginForm("Tag", "Translations", FormMethod.Get, new { enctype = "multipart/form-data", onsubmit = "return validateTagInput()" })) 

JQuery,

    

Intenta usarlo de esta manera: