Mise à jour majeure: en raison de Spring, le validateur est appelé avant que l'appel onSubmit ne se produise. Lorsque aucun bouton radio n'est sélectionné, cela fonctionne correctement. Lorsqu'un bouton radio est sélectionné, les données POST contiennent une variable pour le bouton radio et cela provoque une exception NestedServletException.En JSP, pourquoi mes boutons radio font-ils que onSubmit n'est plus appelé?
Cette variable n'est liée à aucune propriété ou classe. Existe-t-il un moyen "correct" de gérer une telle variable, que ce soit dans JSP ou dans mon code?
J'ai une page JSP, accroché avec le printemps, où l'auditeur onSubmit est plus invoqué après que j'ajouter des boutons radio à la page JSP. Sans les boutons radio, une version nue de la page ressemble à ceci.
<form:form>
<fieldset>
<input type="submit" value="Submit"/>
</fieldset>
</form:form>
Cela fonctionne comme prévu. Mon débogueur atteint un point d'arrêt pour onSubmit une fois le bouton d'envoi appuyé. Ensuite, j'ajoute le code suivant pour les boutons radio, qui peuvent être vus ci-dessous.
<form:form>
<fieldset>
<input type="submit" value="Submit"/>
</fieldset>
<fieldset class="contentHalfFieldset"><legend>NID</legend>
<input type="radio" name="someName" value="value1" />
<input type="radio" name="someName" value="value2" />
<input type="radio" name="someName" value="value3" />
</fieldset>
</form:form>
Maintenant, quand je ne sélectionnez aucun bouton radio, le bouton d'envoi provoque toujours l'événement de soumission pour atteindre le point d'arrêt dans la méthode onSubmit. Cela fonctionne toujours comme prévu. Toutefois, lorsque je sélectionne l'un des boutons radio et que j'appuie sur le bouton Soumettre, la page est simplement actualisée.
Pourquoi est-ce? Qu'est-ce qui se passe qui fait que les boutons d'entrée empêchent le traitement d'une soumission?
------- ------- HTML généré
<form id="cmd" method="post" action="/page/pageAction.html?param=k" onsubmit="disableSubmit(this);">
<fieldset class="contentHalfFieldset"><legend>NID</legend>
<label class="labelClass">First radio button:</label>
<input type="radio" name="nidStatus" value="first" /><br style="clear: both"/>
<label class="labelClass">Second radion button:</label>
<input type="radio" name="nidStatus" value="second" /><br style="clear: both"/>
<label class="labelClass">Third radio button</label>
<input type="radio" name="nidStatus" value="third" /><br style="clear: both"/>
</fieldset>
</form>
------- ------- Plus du Code a demandé
C'est la méthode disableSubmit (..).
function disableSubmit(parentElement) {
elements = parentElement.elements;
for(var i = 0; i < elements.length; i++) {
var element = elements[i];
if(element.type == "submit") {
element.disabled=true;
element.value="Please Wait...";
}
}
};
est votre "onSubmit()" méthode peut-être un contrôleur Spring-MVC? Si oui, est-ce que vous mappez un requestMethod spécifique (peut-être obtenir) à votre mehtod onSubmit()? – DwB
En fait, j'ai appris et je me suis adapté à tout ce que ce projet était déjà construit, excusez donc ma terminologie. ce n'est pas la même chose que d'apprendre et de construire le projet. Je peux très bien utiliser "Spring-MVC" comme technologie. J'utilise certainement Spring, et j'ai été capable de lier des variables dans le passé sous la forme de. Si c'est Spring-MVC, alors je l'utilise. Avec ce que j'ai fourni ci-dessus, cependant, je penserais que les étiquettes ne l'affecteraient pas comme ceci.Essaie-t-il de compresser les valeurs d'une manière qui brise l'appel onSubmit? –
Danny
Partagez également le code HTML généré. –