Page 1 sur 1

Soumission automatique d'un formulaire autocomplete

Posté : 13 sept. 2011, 20:45
par almoha
Bonjour,

J'utilise jquery UI Autocomplete avec ce code fonctionnel :
<script type="text/javascript">
 
$(function() {
 
            $( "#state" ).autocomplete({
                source: "dev2_search_autocomplete.php",
                minLength: 2,
 
 
				select: function (event, ui) {
					$('#state_id').val(ui.item.id);
 
 
                }
            });
 
 
        });
</script>
...
<form action ="" method="POST" id="autoc">
   <div class="ui-widget">
   <label for="state">state </label>
   <input type="text" id="state" name="state" /> 
   <input type="hidden" id="state_id" name="state_id" /> 
   <input type="submit" name="submitBtn" value="ok" />
   </div>
</form>

Au lieu d'avoir à cliquer sur le bouton submit pour soumettre mon formulaire, existe-t-il un moyen de soumettre ce formulaire automatiquement après avoir cliqué sur une proposition de l'autocomplete ?
Si oui, comment ? De plus, est-il possible de prévoir une condition : soumission automatique sauf si la proposition cliquée est égale à "No Results Found" (aucune soumission dans ce cas là) ? Merci.

Re: Soumission automatique d'un formulaire autocomplete

Posté : 18 sept. 2011, 11:46
par Ryle
Tu traites l'action du select de ta boite de suggestion pour mettre à jour l'un de tes champs. Il faut donc ensuite déclencher la soumission du formulaire :

Code : Tout sélectionner

document.getElementById('autoc').submit()
Et si tu ne veux pas le soumettre pour une valeur donnée, il te suffit de le mettre dans un if() et de tester s'il faut l'exécuter ou non :)

Re: Soumission automatique d'un formulaire autocomplete

Posté : 18 sept. 2011, 14:03
par almoha
Bonjour,

Merci pour ta réponse. En complétant mon code Jquery, je suis parvenu à soumettre automatiquement mon formulaire autocomplete après un clic sur une proposition :
$(function() {
 
            $( "#clesearch" ).autocomplete({
                source: "scripts/autoc/dev2_search_autocomplete.php",
                minLength: 2,
 
 
				select: function (event, ui) {
					$('#clesearch_id').val(ui.item.id);
                                        $('#clesearch').val(ui.item.value);
					$("#cherche").submit();
 
                }
            });

 <form action ="" method="POST" id="cherche">
   <div class="ui-widget">
   <label for="state">Rechercher</label>
   <input type="text"   name="clesearch" id="clesearch"/> 
   <input type="hidden" id="clesearch_id" name="clesearch_id" /> 
   </div>
</form>
Mais comme je suis débutant, je n'arrive pas à conditionner la soumission avec un if , ceci pour empêcher la soumission automatique lorsque la value de l'input est égale à "No Results Found". Je ne souhaite pas de message d'alerte, simplement qu'il ne se passe rien si je clique sur la "proposition" "No Results Found".
Peux-tu m'apporter une aide complémentaire ? Merci.

Re: Soumission automatique d'un formulaire autocomplete

Posté : 18 sept. 2011, 23:46
par Ryle
Il te suffit de comparer la valeur sélectionnée (donc à priori ui.item.value) avec la chaine que tu attends :
if (ui.item.value != 'No Results Found') {
   $("#cherche").submit();
}

Re: Soumission automatique d'un formulaire autocomplete

Posté : 19 sept. 2011, 18:37
par almoha
Merci beaucoup. Ton code correspond à mes attentes :)