我正在为Twitter Bootstrap(https://github.com/biggora/bootstrap-ajax-typeahead)使用typeahead的修改版本,这简化了使用远程数据的过程。我遇到的问题是我的AJAX调用url取决于我的选择输入中的选定选项。
var subjectId = $('#chapters-open-subject option:selected').val();
$('#chapters-edit-title').typeahead({
onSelect: function(item){
$('#chapters-edit-submit').attr('disabled',false).removeClass('btn-default').addClass('btn-primary');
},
ajax: {
url: '/admin/misc/chapters/search/'+subjectId
},
displayField: 'naslov'
});
问题是即使我在选择框中更改了选项,AJAX请求中的url保持不变并且不会相应地更改。 我怎么能解决这个问题?
答案 0 :(得分:0)
你可能能够逃脱这样的事情:
var subjectId = $('#chapters-open-subject option:selected').val();
var $typeahead = $('#chapters-edit-title').typeahead({
onSelect: function(item){
$('#chapters-edit-submit').attr('disabled',false).removeClass('btn-default').addClass('btn-primary');
},
ajax: {
url: '/admin/misc/chapters/search/' + subjectId
},
displayField: 'naslov'
});
$('#chapters-open-subject').on('change', function() {
subjectId = $(this).val();
$typeahead.data('typeahead').options.ajax.url = '/admin/misc/chapters/search/' + subjectId;
});
如果这不起作用,我建议在GitHub上发布库的问题。它似乎无法在设置后轻松更改URL。
答案 1 :(得分:0)
ajax :
{
preDispatch : function() { return { q: $("#subjectId").val() }},
url: '/admin/misc/chapters/search/'+ ,
method : 'get',
displayField : 'naslov',
}