JQuery 使用标签和值对自动完成
JQuery Autocomplete using Label and Value pairs
我正在尝试在我的 jsp 页面上实现 jquery 自动完成功能。想法是,在加载时,将通过从 db table 和 return 中检索数据来填充列表并将其用作源。
下面是我的 Distributor Class,我想使用 distributorName 作为 Label,distributorId 作为 Value。
分销商Java对象Class
public class DistributorObject {
private BigInteger distributorId;
private String distributorName;
private String distributorNameUpper;
...Getters and Setters
问题是如何正确地将这两个值设置为 javascript 变量的标签和值属性?
当前JSP脚本
$(function() {
var availableTutorials = [];
<c:forEach items="${allDistributorsList}" var="distributor" varStatus="status">
var distrib = {label: ${distributor.distributorName}, value: ${distributor.distributorId}};
availableTutorials.push(distrib);
</c:forEach>
$( "#automplete-1" ).autocomplete({
source: availableTutorials
});
});
这段特定的代码不起作用:
var distrib = {label: ${distributor.distributorName}, value: ${distributor.distributorId}};
但如果我用实际的字符串值替换它,它就会起作用。如:
var distrib = {label: "zzzz", value: "1"};
另外,在查看页面源代码时,我可以看到 ${distributor.distributorName} 已正确填充。所以我很困惑为什么我不能将它用作 属性 值。
谢谢,
菲利普
在您的浏览器控制台中,您应该会看到类似 Uncaught SyntaxError: Unexpected identifier
.
的错误
看起来这些是字符串值,因此您必须将它们括在 ''
中,如下所示(如果 distributorId
是数值,则无需将其括在 ''
就像一个字符串文字)。
var distrib = {
label: '${distributor.distributorName}',
value: '${distributor.distributorId}'
};
我正在尝试在我的 jsp 页面上实现 jquery 自动完成功能。想法是,在加载时,将通过从 db table 和 return 中检索数据来填充列表并将其用作源。
下面是我的 Distributor Class,我想使用 distributorName 作为 Label,distributorId 作为 Value。
分销商Java对象Class
public class DistributorObject {
private BigInteger distributorId;
private String distributorName;
private String distributorNameUpper;
...Getters and Setters
问题是如何正确地将这两个值设置为 javascript 变量的标签和值属性?
当前JSP脚本
$(function() {
var availableTutorials = [];
<c:forEach items="${allDistributorsList}" var="distributor" varStatus="status">
var distrib = {label: ${distributor.distributorName}, value: ${distributor.distributorId}};
availableTutorials.push(distrib);
</c:forEach>
$( "#automplete-1" ).autocomplete({
source: availableTutorials
});
});
这段特定的代码不起作用:
var distrib = {label: ${distributor.distributorName}, value: ${distributor.distributorId}};
但如果我用实际的字符串值替换它,它就会起作用。如:
var distrib = {label: "zzzz", value: "1"};
另外,在查看页面源代码时,我可以看到 ${distributor.distributorName} 已正确填充。所以我很困惑为什么我不能将它用作 属性 值。
谢谢,
菲利普
在您的浏览器控制台中,您应该会看到类似 Uncaught SyntaxError: Unexpected identifier
.
看起来这些是字符串值,因此您必须将它们括在 ''
中,如下所示(如果 distributorId
是数值,则无需将其括在 ''
就像一个字符串文字)。
var distrib = {
label: '${distributor.distributorName}',
value: '${distributor.distributorId}'
};