2017-05-29 3 views
0

J'utilise struts2 autocomplete dans un formulaire. Je vais faire un formulaire de soumission après avoir choisi tous les champs grâce à la saisie semi-automatique sur les différentes zones de texte. Maintenant, je ne veux pas permettre à l'utilisateur de taper une entrée aléatoire dans la zone de texte automatique et autoriser un envoi. Comment aborder cela?Soumission de formulaire de saisie semi-automatique Struts2 avec seulement les valeurs suggérées

EDIT:

<form class="form-horizontal" name="createproduct" role="form"> 
      <div class="form-group"> 
       <label for="density" class="col-sm-3 control-label">Select 
        Density</label> 
       <div class="col-sm-9"> 
        <sj:autocompleter size="30" list="descArray" name="desc" 
         id="density" placeholder="Density" class="form-control"></sj:autocompleter> 
       </div> 
      </div> 
      <div class="form-group"> 
       <label for="density" class="col-sm-3 control-label">Select 
        Material</label> 
       <div class="col-sm-9"> 
        <sj:autocompleter size="30" list="matArray" name="mat" id="mat" 
         placeholder="Material" class="form-control"></sj:autocompleter> 
       </div> 
      </div> 
..... //// more form elements go here ...... ///// 
+1

Cela dépend de la autocomplétion que vous utilisez. Montrer du code. BTW S2 dojo plugin est obsolète. –

+0

J'ai ajouté du code pour vous montrer ce qui se passe. Si les plugins Dojo sont recommandés, pouvez-vous me suggérer la meilleure approche? –

Répondre

0

Essayez Select2 jquery plugin.You peut soit aller chercher tous les détails et initialiser le plug-in ou peut chercher à la demande d'information.

Récupération d'informations en fonction de l'entrée; Nom_action doit renvoyer une entrée sélectionnée en tant que JSON.

$("#material").select2({ 
       tags: false, 
       minimumInputLength: 1, // Minimum Input length for search request 
       ajax: { 
        url:'actionName', 
        dataType:'json', 
        data:function(params){ 
         return{ 
          materialSearchTerm: params.term, // search term 
          page: params.page 
         }; 
        }, 
         processResults: function (data, page) { 
          var jsonResult = JSON.parse(data); 
          return { 
           results: jsonResult.result 
          }; 
         } 

       } 
      }); 

par exemple; - {result:[{ id: 0, text: 'enhancement' }, { id: 1, text: 'bug' }, { id: 2, text: 'duplicate' }, { id: 3, text: 'invalid' }, { id: 4, text: 'wontfix' }];}