我已经尝试了几个小时,在我的“远程”路径中获取一个变量。变量将根据另一个输入而改变。这是代码:
school_value = $('#school').val();
$('#school').change(function () {
school_value = $(this).val();
$('#programme').typeahead('destroy'); // I have also tried with destroy - but it doesnt work.
});
$('#programme').typeahead({
remote: 'typeahead.php?programme&type=1&school_name=' + school_value,
cache: false,
limit: 10
});
变量“school_type”未在远程地址中设置,因此未被调用。
你知道如何让它工作吗?我刚刚从 Bootstrap 2.3 切换到 3,然后注意到 typeahead 已被弃用。上面的代码适用于 Bootstrap 2.3,但似乎在初始化脚本时,远程路径被锁定。
最佳答案
我找到了解决方案!代码:
$('#programme').typeahead({
remote: {
url: 'typeahead.php?programme&type=1&school_name=',
replace: function () {
var q = 'typeahead.php?programme&type=1&school_name=';
if ($('#school').val()) {
q += encodeURIComponent($('#school').val());
}
return q;
}
},
cache: false,
limit: 10
});
基于此线程答案:Bootstrap 3 typeahead.js - remote url attributes
参见 typeahead.js docs 中的函数“replace”
关于javascript - Typeahead.js 在远程 url 中包含动态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18688891/