2016-03-25 10 views
1

Ich benutze ältere Version von select2 - in denen ein Array an eine Auswahl zu binden, muss ich <input type="text"> verwenden. Ist es möglich, den Wert der Auswahl auf bestimmte Aktionen zu setzen, z. B. auf einen Klick. Ich habe viele Fragen im Stack-Overflow durchlaufen, aber im Fall von <input type="text"> scheint keine Lösung zu funktionieren.jQuery Select2 3.5.2 Set-Wert in dynamisch erstellt Drop-down

Hier ist mein Code

var value = [{ 
 
    id: 0, 
 
    text: 'enhancement' 
 
}, { 
 
    id: 1, 
 
    text: 'bug' 
 
}, { 
 
    id: 2, 
 
    text: 'duplicate' 
 
}, { 
 
    id: 3, 
 
    text: 'invalid' 
 
}, { 
 
    id: 4, 
 
    text: 'wontfix' 
 
}] 
 

 

 
$(document).ready(function() { 
 
    $(".lang").select2({ 
 
    data: value 
 
    }) 
 

 

 
}); 
 

 
$("#btn").click(function() { 
 
    $(".lang").select2('val', 'bug'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.min.js"></script> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.min.css" rel="stylesheet" /> 
 

 

 
<input class="lang" type="text" style="width:100px"> 
 
<input class="lang" type="text" style="width:100px"> 
 
<input class="lang" type="text" style="width:100px"> 
 

 
<button id="btn">Click Here</button>

Antwort

2

aktualisierte Antwort mehr wählt zur Unterstützung in der gleichen Zeit (Klasse) geändert werden, und verwenden, um Daten (id & Text) Objekt anstelle Wert (id)

  1. Warum rufst du zweimal select2() an?
  2. Wenn Sie etwas auswählen möchten, müssen Sie den Wert als Parameter übergeben werden, nicht von der Beschreibung

schnelle Lösung: $("#lang").select2('val', 1);

var value = [{ 
 
    id: 0, 
 
    text: 'enhancement' 
 
}, { 
 
    id: 1, 
 
    text: 'bug' 
 
}, { 
 
    id: 2, 
 
    text: 'duplicate' 
 
}, { 
 
    id: 3, 
 
    text: 'invalid' 
 
}, { 
 
    id: 4, 
 
    text: 'wontfix' 
 
}] 
 

 

 
$(document).ready(function() { 
 
    $(".lang").select2({ 
 
    data: value 
 
    }) 
 

 

 
}); 
 

 
$("#btn").click(function() { 
 
    $(".lang").select2('val', 1); 
 
}); 
 

 
$("#btn-2").click(function() { 
 
    $(".lang").select2('data', {id: 0, text: 'enhancement'}); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.min.js"></script> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.min.css" rel="stylesheet" /> 
 

 

 
<input id="lang_1" type="text" class="lang" style="width:100px"><br /> 
 
<input id="lang_2" type="text" class="lang" style="width:100px"><br /> 
 
<input id="lang_3" type="text" class="lang" style="width:100px"><br /> 
 

 
<button id="btn">Set all to value 1</button><br /> 
 
<button id="btn-2">Set all to data (id & text object)</button>

+0

etwas, das ich in der Arbeit gefunden diese Geige. - https://jsfiddle.net/ahmadtarawneah/o0uxjjtq/23/. Danke für die Antwort. –

+0

Sie können es als Antwort markieren, thx – qdev

+0

Ich habe die Frage leicht geändert, eigentlich Problem ist mit dem Selektor, wenn ich Klasse verwende Der obige Code funktioniert nicht. Ich habe mehr als ein Auswahlkästchen und muss 'class' anstelle von 'id' verwenden –

Verwandte Themen