Html.BeginForm使用onSubmit进行验证

m a*_*ali 8 .net asp.net-mvc jquery

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

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

        }
    });
});
Run Code Online (Sandbox Code Playgroud)

但问题出在提交按钮上

  <input type="submit" value="Submit" class="btn btn-primary">
Run Code Online (Sandbox Code Playgroud)

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

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

         <div class="modal-body">
        @using (Html.BeginForm("Save", "ReadingsEntry", FormMethod.Post, new { enctype = "multipart/form-data", onsubmit = "validateForm()" }))
        {
Run Code Online (Sandbox Code Playgroud)

有任何想法吗

Pan*_*bey 15

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

否则,您可以将您的jquery功能更改为 -

$(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();
    }
});
Run Code Online (Sandbox Code Playgroud)

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

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

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


Cod*_*oft 6

这对我有用

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"}))
{
<input type="text" id="newMonoReading"><br>
<input type="submit" value="Submit" onclick = "return validateForm();" class="btn btn-primary">
}
Run Code Online (Sandbox Code Playgroud)