1 回答
TA贡献1887条经验 获得超5个赞
经过一些调整,我设法找到了解决方案。我保留了变量“list”,并在Typeahead的afterSelect事件中进行了调整,其中在输入文本#products中选择一个选项后,afterSelect事件将与所选项目相关的值发送到div #image。这个解决方案在这里可以看到有效。
下面,Ajax 和 TypeAhead 脚本进行了调整,现在也可以正常工作。调整是在 Ajax 成功和 TypeAhead afterSelect 事件中进行的:
var products;
var list = {}; // object
$ ( function ()
{
$('#categoryFK').on('change', function(){
var queryID = $(this).val();
$.ajax({
url:"fetch.php",
method:"POST",
data: {
category: queryID
},
dataType:"json",
success:function(data)
{
/* The adjust was made here on Ajax success */
console.log(data);
$("#products").val ('');
products = data;
}
});
});
$('#products').typeahead({
source: function ( query, result )
{
result ( $.map(products, function (item)
{
return item.productName;
}
));
},
/* The adjust was made here on afterSelect event */
afterSelect: function(data) {
$.each(products, function(idx, item){
list[item.productName] = item.image;
});
var img = list[data];
$('#image').html(img);
},
});
});
最后,这就是我发现的解决问题的方法。如果有人在上面的代码中建议进行一些优化,那就太好了。谢谢。
- 1 回答
- 0 关注
- 100 浏览
添加回答
举报