定义函数外部变量名称的JQuery
我有一个泛型函数,在这个函数中,我试图传递变量“name”,该变量将在for…each循环中使用。代码最终将填充引导IO选择组件 该函数使用AJAX调用Web服务,但由于许多方法都是类似的,因此我认为最好的做法是使其尽可能通用定义函数外部变量名称的JQuery,jquery,dynamic,Jquery,Dynamic,我有一个泛型函数,在这个函数中,我试图传递变量“name”,该变量将在for…each循环中使用。代码最终将填充引导IO选择组件 该函数使用AJAX调用Web服务,但由于许多方法都是类似的,因此我认为最好的做法是使其尽可能通用 function setSelectData(selectControl, selectCaption, endPointName, codeField, descrField) { $(selectControl).empty(); $(selectC
function setSelectData(selectControl, selectCaption, endPointName, codeField, descrField) {
$(selectControl).empty();
$(selectControl).append('<option selected="true" disabled>' + selectCaption + '</option>');
$(selectControl).prop('selectedIndex', 0);
// using jQuery & 'beforeSend' callback
var username='****username****';
var password='****password****';
var error;
var url = 'http://<myserver>/Hibrs/hibrs/lookup/' + endPointName;
$.ajax({
type: "GET",
dataType:"json",
contentType: "application/json",
url: url,
xhrFields: {
withCredentials: true
},
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization', 'Basic ' + btoa(username+':'+password));
},
success: function(data) {
$.each(data.list, function (key, entry) {
$(selectControl).append('<option value=' + entry.codeField + '>' + entry.descrField + '</option>')
})
},
error: function(jqXHR, textStatus, errorThrown) {
console.log('Error in processing! ' + textStatus + '||' + errorThrown);
alert("Error: " + textStatus + '||' + errorThrown);
}
});
}
感兴趣的两个变量名是codeField和descrField。JSON返回中的这些列名将根据代码类别而有所不同。通过传递列名,我希望能够使这个函数完全通用。但遗憾的是,它并没有起到说明codeField和descrField是未定义的作用。我在谷歌上搜索了StackOverflow,看看是否能找到解决方案。如果我硬编码返回的JSON列名(即entry.drugType和entry.shortDescription),Select控件将按预期填充
任何想法都将不胜感激 请注意,如果您将该脚本发送给任何人,您的用户名和密码将是公开的。不管你在这里隐藏了多少这些值。希望您有某种形式的OAuth2或类似的功能来为每个用户生成一个临时令牌。这些实际的脚本永远不会包含凭据。这段代码就是我试图为“真正的”应用程序编写的POC。谢谢您的关注。不要使用
entry.codeField
,试试entry[codeField]
Bingo!谢谢你,贾斯汀。
$(window).on('load', function() {
setSelectData(selectDrugType, 'Choose Drug Type', 'getDrugTypeValues', 'drugType', 'shortDescription')
});