Ok, ich bin mir sicher, dass hier etwas Einfaches falsch ist, aber ich bin nicht 100% was es ist.
Daher versuche ich, die Select2 AJAX-Methode zu verwenden, damit Benutzer eine Datenbank durchsuchen und ein Ergebnis auswählen können. Der Anruf selbst kommt mit Ergebnissen zurück, erlaubt mir jedoch nicht, die Antwort aus der Liste auszuwählen. Es scheint Ihnen auch nicht zu erlauben, es beim Schweben oder Aufwärts- / Abwärtspfeil "auszuwählen". Also ohne weiteres, hier ist mein Code:
index.html
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="select2/select2.css" media="screen" />
<script src="select2/select2.js"></script>
<script src="select.js"></script>
</head>
<body>
<input type="text" style="width: 500px" class="select2">
</body>
</html>
select.js
jQuery(function() {
var formatSelection = function(bond) {
console.log(bond)
return bond.name
}
var formatResult = function(bond) {
return '<div class="select2-user-result">' + bond.name + '</div>'
}
var initSelection = function(elem, cb) {
console.log(elem)
return elem
}
$('.select2').select2({
placeholder: "Policy Name",
minimumInputLength: 3,
multiple: false,
quietMillis: 100,
ajax: {
url: "http://localhost:3000/search",
dataType: 'json',
type: 'POST',
data: function(term, page) {
return {
search: term,
page: page || 1
}
},
results: function(bond, page) {
return {results: bond.results, more: (bond.results && bond.results.length == 10 ? true: false)}
}
},
formatResult: formatResult,
formatSelection: formatSelection,
initSelection: initSelection
})
})
JSON-Antwort
{
error: null,
results: [
{
name: 'Some Name',
_id: 'Some Id'
},
{
name: 'Some Name',
_id: 'Some Id'
}
]
}
Alles scheint korrekt zu sein, aber ich kann die Antwort nicht auswählen und in das Feld eingeben. Gibt es irgendwo in meinem Code ein Problem?