Javascript 引导式打字机

Javascript 引导式打字机,javascript,jquery,ajax,twitter-bootstrap,Javascript,Jquery,Ajax,Twitter Bootstrap,我正在为Twitter Bootstrap()使用修改后的typeahead版本,它简化了远程数据的使用。我遇到的问题是,我的AJAX调用url取决于选择输入中的所选选项 var subjectId = $('#chapters-open-subject option:selected').val(); $('#chapters-edit-title').typeahead({ onSelect: function(item){ $('

我正在为Twitter Bootstrap()使用修改后的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仍然保持不变,并且没有相应地更改。 我该如何解决这个问题?

您可能可以通过以下方式逃脱:

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。

表达式只计算一次,并且在执行代码时,传递到typeahead库的URL基于
subjectId
的值。换句话说,为了使您所编写的内容正常工作,每次
#chapters open subject
的值发生更改时,都必须执行所有这些代码。您是否对如何执行有任何建议?当然,只需将整段代码包装在
$('#chapers open subject')。on('change',function(){/code>(这里是您的代码)
};
。但是,如果库无法处理多次调用,这可能是个坏主意。
ajax : 
{
  preDispatch : function() { return { q: $("#subjectId").val() }},
  url: '/admin/misc/chapters/search/'+ ,
  method : 'get',
  displayField : 'naslov',
}