Html.BeginForm使用onSubmit进行validation

我试图提交我的表单,但是我已经添加了一些jquery用于validation工作:

$(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(); } }); }); 

但问题出在提交按钮上

   

如果有错误,提交按钮仍然有效,我需要它显示没有错误消息,然后发送,但我尝试使用表单的onsubmit但它不工作,它仍然提交即使值较小和错误消息正在显示。

这是html.BeginForm。 我认为错误可能在这里。 我不太确定。

  

有任何想法吗

如果我是正确的,那么在提交时你想用你的jquery函数validation你的表单..如果传递了vailidation,那么你想要提交被取消,否则你想要取消提交..如果我错了那么请clerify你的问题多了一点。

否则,您可以将您的jqueryfunction更改为 –

 $(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(); } }); 

在创建标记时,使用以下行 -

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

虽然,我没有检查你的代码,但这应该工作..请尝试它,让我们知道..

这对我有用

 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"})) { 
}

这对我有用,

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

JQuery的,

    

尝试以这种方式使用它: