Javascript 引导式打字机
我正在为Twitter Bootstrap()使用修改后的typeahead版本,它简化了远程数据的使用。我遇到的问题是,我的AJAX调用url取决于选择输入中的所选选项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){ $('
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',
}