9
votes

Comment prévenir l'élément de formulaire d'envoyer des champs que nous ne voulons pas?

J'ai un élément de formulaire contenant environ 5 champs que la requête finale va créer en traitement de la valeur de ces champs. Donc, je veux envoyer seulement la requête finale, pas toutes celles, sur le serveur. Comment puis-je exclure ces champs d'être soumis (à l'aide de jQuery)?

abc/def.aspx?field1=val1&field2=val2&field3=val3&field4=val4&field5=val5&final=finalQuery


3 commentaires

Utilisez-vous JQuery pour effectuer la soumission actuellement ou est-ce un ?


les deux, mais je veux une approche lorsque le navigateur JavaScript est désactivé correctement;)


Vous avez trois options: (1) Définissez les attributs désactivés sur true pour les champs. (2) Supprimer les attributs Nom ". (3) Retirez les champs du DOM.


3 Réponses :


10
votes

Retirez l'élément sur Soumettre.

sur le gestionnaire ONSUBMIT: xxx

désactivation de l'élément de formulaire l'empêche également d'être entré dans la requête. (Testé sur chrome ) xxx


4 commentaires

+1 - Pour une version complète, juste $ (': texte', ceci) .Remove (); fonctionne, pas besoin d'un retour non plus.


Alternativement, le script pourrait simplement désactiver les entrées. Je suppose que cela n'a pas vraiment d'importance si c'est un formulaire clair, mais s'il s'agissait d'une soumission de formulaire AJAX, vous voudrez peut-être que les champs soient là encore par la suite, et il est un peu plus facile de simplement définir «désactivé» sur FALSE que de mettre les entrées de retour.


HM ... Utiliser votre approche Formulaire de formulaire désactivé Même si la validation du formulaire n'est pas valide. Comment je peux vérifier si la validation de formulaire est vraie puis désactiver les champs?


Si la validation de formulaire est dans une fonction, faites-la renvoyer un booléen et demandez cela avant de faire la solution DigitalFresh, pour une solution plus flexible, vous devez peut-être utiliser quelque chose comme JQuery Ajaxform jquery.malsup.com/form Il dispose d'options pour la validation / les méthodes de validation / presubmit, des rappels et de toutes sortes de choses utiles



0
votes

Je pense que la meilleure solution consiste à gérer la soumission, puis à envoyer la demande vous-même: xxx

qui devrait faire exactement ce que vous voulez. Edit: Comme Alex a signalé cette solution, vous ne vous émettez pas à cette page, obtenez simplement les résultats si vous devez accéder à la nouvelle page que vous pouvez faire: xxx

de cette façon Le navigateur est redirigé vers cette page et seul le résultat final est envoyé.


2 commentaires

Une soumission de formulaire normale redirigera le navigateur vers le nouvel emplacement. Comme cela ne ferait pas cela - cela ne ferait que chercher les résultats de l'obtention, puis ... Qui sait, en fonction de la fonction de rappel.


Bon point Alex, juste édité pour ajouter la solution non Ajax;) TY



20
votes

Supprimer l'attribut Nom sur les champs que vous ne souhaitez pas soumettre au serveur.

<form action="abc/def.aspx" method="get">
    <input type="text" />
    <input type="text" />
    <input type="text" />
    <input type="text" />
    <input type="text" />
    <input type="hidden" name="final" />
    <input type="submit" value="Send" />
</form>


1 commentaires

Ça fonctionne bien ;) !!! Une bonne et simple solution sans code JS. Ça devrait être la bonne réponse