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。 我认为错误可能在这里。 我不太确定。
@using (Html.BeginForm("Save", "ReadingsEntry", FormMethod.Post, new { enctype = "multipart/form-data", onsubmit = "validateForm()" })) {
有任何想法吗
如果我是正确的,那么在提交时你想用你的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的,
尝试以这种方式使用它:
@using (Html.BeginForm("Save", "ReadingsEntry", FormMethod.Post, new { enctype = "multipart/form-data"})) {