onsubmit按钮仅适用于1个function
我在javascript中有2个函数,但只返回错误中的一个而不是它们两个。
如果我删除一个function然后其他工作,但如果我有2个function它只显示一个。
这是我的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)"}))
这仅适用于ColourErrorMessage。 但是忽略了MonoErrorMessage。 何时它应该显示两个错误….
那么为什么要跳过其中一个function呢?
在同一范围内声明具有相同名称的两个函数将导致最新的函数覆盖较早的函数。
最好这样做:
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)"}))