Le bouton Onsubmit ne fonctionne que pour 1 fonction.

J’ai 2 fonctions en javascript, mais ne renvoie qu’une seule de l’erreur plutôt que les deux.

si je supprime une fonction, alors d’autres fonctionnent, mais si j’ai 2 fonctions, il n’en montre qu’une.

c’est mon 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(); } } 

Ceci est ma soumission:

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

Cela ne fonctionne que pour ColourErrorMessage. mais ignore MonoErrorMessage. quand il devrait montrer les deux erreurs ….

alors pourquoi est-il sauter l’une des fonctions

La déclaration de deux fonctions portant le même nom dans la même scope entraîne l’écrasement de la plus récente.

Le mieux est de faire ceci:

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

Puis pour le HTML:

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