2017-06-11 4 views
1

J'ai une liste (dynamique) de choix dans un champ <input>:Existe-t-il un événement lié au choix d'un datalist <option>?

<input list="choices"> 
 
<datalist id="choices"> 
 
<option>one</option> 
 
<option>two</option> 
 
</datalist>

Y at-il un événement tiré juste après le choix du <option> est fait? (que je voudrais attraper/utiliser dans Vue.js si cela est important). Ce serait quand le bouton gauche de la souris est cliqué dans le scénario ci-dessous:

enter image description here

+0

vous pouvez déclencher .change jquery chaque fois que la valeur de l'option est modifiée – ISHIDA

+0

@ISHIDA: vous voulez dire ** après que l'option a été choisie **, pas ** après chaque frappe ** (et donc une modification du contenu de l'entrée champ)? Ce serait génial. – WoJ

+0

Oui, j'ai fourni un exemple dans les réponses – ISHIDA

Répondre

-1

essayer. il vérifiera si la valeur existe dans la zone d'entrée et d'alerte est déclenchée lorsque vous sélectionnez une option que vous avez demandé

<input list="choices" id="searchbox"> 
<datalist id="choices"> 
<option id="one">one</option> 
<option>two</option> 
</datalist> 


$("#searchbox").bind('input', function() { 
    if(checkExists($('#searchbox').val()) === true){ 
     alert('item selected') 
    } 
}); 

function checkExists(inputValue) { 
    console.log(inputValue); 

    var x = document.getElementById("choices"); 
    var i; 
    var flag; 
    for (i = 0; i < x.options.length; i++) { 
     if(inputValue == x.options[i].value){ 
      flag = true; 
     } 
    } 
    return flag; 
} 
+0

Ce n'est pas ce que je cherche, s'il vous plaît voir https://jsfiddle.net/WoJWoJ/pnfa10gk/ - l'alerte est déclenchée après chaque changement de la boîte de saisie - la chose exacte que je voulez éviter – WoJ

+0

vous voulez capturer l'événement mousedown lors de la sélection des options? – ISHIDA

+0

Cela pourrait être une option - j'espérais un événement qui est déclenché quand une option de la est choisi (cliqué sur) - à ce moment je voudrais éclaircir le champ de recherche et utiliser l'option choisie – WoJ

0

Il ressemble à options datalist ne Tigrou tout état de cause, si vous avez besoin de coder votre propre Solution.

j'ai pu faire quelque chose de similaire pour déclencher des événements avec des options en datalist, en utilisant @input dans l'élément

Par exemple, dans votre code, vous pouvez essayer une solution en commençant par ce

<input list="choices" @input="checkInput" > 
<datalist id="choices"> 
<option>one</option> 
<option>two</option> 
</datalist> 

Dans la méthode utilisée avec @input, vous pouvez vérifier les modifications de la valeur d'entrée.

checkInput(e){ 
    var inputValue = e.target.value; 
    //Your code 
    }, 

Par exemple, vous pouvez vérifier si la valeur d'entrée, après un clic dans une option de votre datalyst, est une option valide, et après que les conditions rencontre, vous pouvez lancer une autre méthode ou tout ce que vous voulez.