将动态字段名称传递给jquery的每个方法

时间:2015-06-01 10:06:37

标签: javascript jquery ajax

我试图动态地将字段名称传递给我的函数,以便我的表单使用自动完成功能。然后我在我的页面中调用此函数,但我一直收到错误,我认为这是因为它试图从字面上获取列属性而不是动态。

在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);
            }
        });
    });
}

谢谢!

1 个答案:

答案 0 :(得分:1)

如果我正确,那么您希望获得字段&{39; title'来自您的Json数据和此字段名称' title'将动态传递给函数。 在这种情况下,从json获取值的语法是错误的。

您只需要更改以下代码行:

来自:

apiCollection.push(value.fieldName);

到:

apiCollection.push(value[fieldName]); 

如果有任何问题,请告诉我。