提交按钮仅适用于 1 个功能

onsubmit button works only for 1 function

本文关键字:功能 适用于 按钮 提交      更新时间:2023-09-26

我在javascript中有2个函数,但只返回一个错误,而不是两个。

如果我删除一个函数,

那么其他函数就可以工作,但是如果我有 2 个函数,它只显示一个。

这是我的JavaScript:

     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();
    }
}
function validateForm(event) {
    event = event || window.event || event.srcElement;
    var InitialColourReading = $('#InitialColourReading').val();
    var newColourReading = $('#newColourReading').val()
    if (~~newColourReading < ~~InitialColourReading) {
        $('#ColourErrorMessage').text("New Colour Readings must be MORE than existing");
        $('#ColourErrorMessage').show();
        event.preventDefault();
    }
    else {
        $('#ColourErrorMessage').hide();
    }
}

这是我提交的内容:

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

这仅适用于 ColorErrorMessage . 但忽略 MonoErrorMessage。 当它应该显示两个错误时....

那么为什么要跳过其中一个函数

在同一

作用域中声明两个同名的函数将导致最新的函数覆盖较早的函数。

最好这样做:

function validateForm(event){
    validateMono(event)
    validateColor(event) //Or something to combine the results.
}
function validateMono(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();
    }
}
function validateColor(event) {
    event = event || window.event || event.srcElement;
    var InitialColourReading = $('#InitialColourReading').val();
    var newColourReading = $('#newColourReading').val()
    if (~~newColourReading < ~~InitialColourReading) {
        $('#ColourErrorMessage').text("New Colour Readings must be MORE than existing");
        $('#ColourErrorMessage').show();
        event.preventDefault();
    }
    else {
        $('#ColourErrorMessage').hide();
    }
}

然后对于 HTML:

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