我正在使用class StateViewHolder extends RecyclerView.ViewHolder {
private StateAdapterBinding stateAdapterBinding;
private StateClickListener stateClickListener;
StateViewHolder(StateAdapterBinding stateAdapterBinding, StateClickListener stateClickListener) {
super(stateAdapterBinding.getRoot());
this.stateAdapterBinding = stateAdapterBinding;
this.stateClickListener = stateClickListener;
}
public void bind(State state, int position) {
stateAdapterBinding.setStateModel(state);
stateAdapterBinding.setStateHandler(stateClickListener);
stateAdapterBinding.getRoot().setTag(R.id.lnrHome, position);
stateAdapterBinding.getRoot().setTag(state);
stateAdapterBinding.executePendingBindings();
}
插件。
这是我实例化自动完成插件的方式。
jquery-ui autocomplete
在下拉菜单更改中,我正在尝试更改选项:
//autofill
$( "#TextArea" ).autocomplete({
source: "search.php?option="+ option.toLowerCase(),
minLength: 3
});
我从下面的问题中获得了更新源字符串的代码。
Jquery: Possible to dynamically change source of Autocomplete widget?
但是,这种解决方案似乎对我不起作用。
即使更改下拉菜单中的选项,我仍然会获得第一个选定的选项。 任何帮助将不胜感激。
答案 0 :(得分:1)
建议以下内容:
$("#TextArea").autocomplete({
source: function(req, resp){
var option = $('#Options option:selected').val().toLowerCase();
$.ajax({
cache: false,
url: "search.php",
data: {
option: option,
term: req.term
},
dataType: "json",
success: function(data){
resp(data);
}
});
},
minLength: 3
});
我认为一个问题是,如果#Options
是<select>
元素,则需要找到所选的子元素:
$("#Options option:selected")
这可确保您拥有正确的对象,然后可以在其上调用.val()
。如果您在这里需要更多帮助,请使用MCVE更新您的信息:https://stackoverflow.com/help/mcve
这可以为您解决问题。如果没有,请继续。
第二,为了确保您不缓存,我们可以执行更手动的源捕获。
使用字符串时,自动完成插件会期望该字符串指向将返回JSON数据的URL资源。它可以在同一主机上,也可以在其他主机上(必须支持CORS)。 Autocomplete插件不会过滤结果,而是会在查询字符串中添加一个
term
字段,服务器端脚本应使用该字段来过滤结果。
因此,我们使用某些添加的设置来复制相同的功能。因此,每次检查源时,都会检查选项并发送术语。我们将以JSON格式返回数据,并将其发送回Autocomplete进行显示。
希望有帮助。