2017-03-02 4 views
0

Ich benutze MagicSuggest und ich brauche die Länge der Auswahl auf ein Unschärfe-Ereignis. Mein Code funktioniert gut, wenn ich eine neue Auswahl über die EINGABETASTE hinzufüge, aber nicht funktioniert, wenn ich eine vorhandene Auswahl aus der Liste auswähle.MagicSuggest: Get Länge der Auswahl auf Unschärfe

Use Cases

  1. wenn Benutzer Vorschläge über die ENTER-Taste wählt, Länge = 1 - Korrekte
  2. wenn Benutzer Vorschläge über den Mausklick, Länge = 0 wählt - Falsche sollte, 1

JSfiddle https://jsfiddle.net/a1ejqtae/7/

HTML

<form action=""> 
    <label for="keyword">Keywords</label> 
    <input type="text" id="keywords"> 
</form> 

JS

$('form input').on('blur', function(){ 

var selectionLength = $('form .ms-sel-item').length; 
$('.selection-name').text(selectionLength); 
console.log('Selection is ' + selectionLength); 

if(selectionLength > 0){ 
console.log('Selection is greater than 0'); 
} 

}); 

PS jemand weiß, was zu diesem Plugin passiert ist, wird die Github Seite noch läuft, aber die Website mit allen Unterlagen und Beispiele ist unten - http://nicolasbize.com/magicsuggest/doc.html. Gott sei Dank für Wayback Maschine.

Antwort

1

I getestet Code unten in Ihrem jsfiddle und es funktionierte gut:

var labelName = $('label').text(); 
console.log('label = ' + labelName); 

$('#keywords').magicSuggest({ 
    hideTrigger: true, 
    placeholder: 'Start typing for keyword suggestions', 
    useZebraStyle: true, 
    data: ["banshee", "fargo", "house", "csi", "ncis"], 
    method: 'get' 
}); 

var update = function(){ 
    var selectionLength = $('form .ms-sel-item').length; 
    $('.selection-name').text(selectionLength); 
    console.log('Selection is ' + selectionLength); 
} 

$('form input').on('blur', function(){ 

update(); 

}); 
$(window).on('keyup', function(e){ 
if(e.keyCode === 13){ 

    update(); 
    $(this).blur(); 
} 

}); 
$(window).on('click', function(e){ 
    update(); 
    $(this).blur(); 
}); 

Lassen Sie mich wissen, ob es eine Frage war. Ich hoffe, es hilft.

+0

Danke, aber ich bekomme immer noch das gleiche Ergebnis per Mausklick. https://jsfiddle.net/r87zvxy5/1/ –

+0

@ClintonGreen Sorry, ich habe meine Antwort aktualisiert. Es sollte auch mit Klick funktionieren. – alireza

+1

Danke für die Hilfe :) –