Я настраиваю форму с помощью Typeahead. У меня есть два поля ввода рядом друг с другом, и мне нужно автозаполнение для каждого из них. Мой HTML выглядит так:
<select id="numerator">
<option value="presentation">presentation</option>
<option value="chemical">chemical</option>
</select>
<input id="numeratorId" class="typeahead" type="text" />
<br/>
<select id="denominator">
<option value="presentation">presentation</option>
<option value="chemical">chemical</option>
</select>
<input id="denominatorId" class="typeahead" type="text" />
Каждое из input
полей будет автоматически заполняться при просмотре конечной точки API. Это должно быть в форме /api/1.0/code?type=presentation&code=123
или /api/1.0/code?type=chemical&code=123
.
Значение параметра type
в вызове API должно зависеть от значения элемента <select>
рядом с каждым полем ввода.
Проблема, с которой я столкнулся, заключается в том, что я не знаю, как сообщить Bloodhound, каким должен быть параметр type
.
В идеале я хотел бы передать его Bloodhound, но я не знаю, как это сделать. Это мой JavaScript:
var bnfMatches = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: '/api/1.0/code?',
replace: function(url, uriEncodedQuery) {
url = url + 'code=' + uriEncodedQuery;
// How to change this to denominator for denominator queries?
val = $('#numerator').val();
if (!val) return url;
return url + '&code_type=' + encodeURIComponent(val)
}
}
});
$('.typeahead').typeahead({
hint: true,
highlight: true,
minLength: 2
},
{
name: 'states',
displayKey: 'id',
source: bnfMatches.ttAdapter()
});
Буду очень благодарен за любые предложения.
input
имеют одинаковыеid
?numeratorId
? - person guest271314   schedule 14.04.2015id
изinput
элементов, добавленыbnfMatches.initialize()
, выбранselect
элемент, имеющийid
начало с выделеннымinput
элементомid
. - person guest271314   schedule 14.04.2015