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)"}))