我试图动态地将字段名称传递给我的函数,以便我的表单使用自动完成功能。然后我在我的页面中调用此函数,但我一直收到错误,我认为这是因为它试图从字面上获取列属性而不是动态。
在PHP中我可以做类似{$ fieldName}的事情。有javascript等价吗?或者我得到了这个可怕的错误?
// Call to function index.php
inputSuggetion('input.search', 'http://myapi.com/endpoint', 'title')
// Function
function inputSuggestion(element, endPoint, fieldName) {
$(element).on("keydown", function(event) {
$.ajax({
type: 'GET',
dataType: "json",
data: {
q: $(element).val()
},
url: endPoint,
success: function(data) {
var apiCollection = [];
$.each(data, function(key, value) {
apiCollection.push(value.fieldName);
});
$(".autocomplete").autocomplete({
source: apiCollection
});
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(JSON.stringify(jqXHR));
console.log("AJAX error: " + textStatus + ' : ' + errorThrown);
}
});
});
}
谢谢!
答案 0 :(得分:1)
如果我正确,那么您希望获得字段&{39; title
'来自您的Json数据和此字段名称' title
'将动态传递给函数。
在这种情况下,从json
获取值的语法是错误的。
您只需要更改以下代码行:
来自:
apiCollection.push(value.fieldName);
到:
apiCollection.push(value[fieldName]);
如果有任何问题,请告诉我。