Bootstrap Typeahead AJAX

时间:2014-04-29 19:07:13

标签: javascript jquery ajax twitter-bootstrap

我正在为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保持不变并且不会相应地更改。 我怎么能解决这个问题?

2 个答案:

答案 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',
}