我正在使用以下代码获取产品类型,该代码运行正常。
我的问题是有多个.type
。我想为特定的.type
调用代码。父类型为.row' and each
。行has unique row id.
I would like to pass $(".type").val()
用于特定.row
id
如何做到这一点。
$(function() {
function log(message) {
$("<div>").text(message).prependTo("#log");
$("#log").scrollTop(0);
}
$(".type").autocomplete({
source: function(request, response) {
$.ajax({
url: "autoProductType",
dataType: "json",
data: {
str: $(".type").val(),// This value
maxRows: 5
},
success: function(data) {
response($.map(data.productTypeList, function(item) {
console.log(item);
return {
label: item.productType,
value: item.productType,
id: item.productTypeId
};
}));
},
error: function(data) {
alert(data.productTypeList);
console.log(typeof data);
console.log(data);
alert('error');
}
});
},
minLength: 1,
select: function(event, ui) {
log(ui.item ?
"Selected: " + ui.item.label :
"Nothing selected, input was " + this.value);
var pid = $(this).parents('.row').attr('id');
$("#" + pid + " .typeId").val(ui.item.id);
},
open: function() {
$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
},
close: function() {
$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
}
});
});
</script>
编辑:我正在尝试关注,但这也无效
function get_row_dtl() {
var pid = $(this).parents('.row').attr('id');
var val = $('#' + pid + ' .type').val();
return val;
}
自动填充
str: get_row_dtl(),
**编辑:**请参阅fiddle here。 在这里,我在类型上创建自动完成。 我的自动完成功能正常用于第一种类型(此处显示所有产品类型)。 但是对于第二个和第二个,它没有显示所有产品列表它只显示已在第一个中选择。所以我想在第二个和下一个类型
上显示所有产品列表(在自动完成时)答案 0 :(得分:1)
试试这个。
将$(".type").val()
替换为request.term
。
来自http://api.jqueryui.com/autocomplete/#option-source
功能第三种变体,一种回调,提供了最大的灵活性,可用于将任何数据源连接到自动完成。回调有两个参数:
答案 1 :(得分:1)
请将您的函数get_row_dtl()更改为
function get_row_dtl() {
var $el= $(':focus');
var pid = $el.parents('.row').attr('id');
var val = $('#' + pid + ' .type').val();
return val;
}
$(&#39;:焦点&#39);用于获得聚焦元素。所以关注outocomplete的任何元素都是重点关注的。这行将为您提供参考,您将获得所需的结果。 我检查过它和它的工作。如果有效,请将其标记为答案。