如何将值绑定到隐藏字段

时间:2014-09-15 12:10:00

标签: jquery autocomplete

下面是我的代码自动建议,一切都很好 我需要fromlocationid来存储隐藏字段

(value:item.fromlocationname, label:item.fromlocationname)

  <script type='text/javascript'>//<![CDATA[ 
$(window).load(function(){ 

 var json;

var searchRequest = null;
$("#field").autocomplete({

maxLength: 5,
source: function(request, response) {
    if (searchRequest !== null) {
        searchRequest.abort();
    }
    searchRequest = $.ajax({
        url: 'getfromlo',
        method: 'post',
        dataType: "json",
        data: {term: request.term, json: json},
        success: function(data) {
            searchRequest = null;
            response($.map(data.items, function(item) {
                return {
                    value: item.fromlocationname,
                    label: item.fromlocationname
                };
            }));
        }
    }).fail(function() {
        searchRequest = null;
    });
}
});


});//]]>  

1 个答案:

答案 0 :(得分:1)

从您对该问题的评论:

  

我需要将fromlocationid存储到隐藏字段

你的隐藏领域是什么?你怎么认出来的?例如,如果它看起来像这样:

<input type="hidden" id="myHiddenField" name="myHiddenField" />

然后你可以像这样设置它的值:

$('#myHiddenField').val(item.fromlocationid);

“隐藏”表单字段的工作方式与任何其他表单字段一样,在使用jQuery时,您使用the .val() function来读取/写入其值。

编辑:如果您正在阅读的值在item对象中,那么显然该对象仅存在于声明它的函数范围内:

function(item) {
    return {
        value: item.fromlocationname,
        label: item.fromlocationname
    };
}

所以你可以在这里使用它:

function(item) {
    $('#myHiddenField').val(item.fromlocationid);
    return {
        value: item.fromlocationname,
        label: item.fromlocationname
    };
}

但这似乎完全正确无误。请注意,此功能将针对item中的每个data.items进行多次评估。因此,您将多次设置input的值,之后它将仅包含data.items数组中最后一个元素的值。

所以你可能需要至少将一些思想放在你实际想要完成的逻辑中。机械地作为语言的一部分,您可以将值设置为input。从逻辑上讲,你实际上要完成的目标仍然不明确,你需要处理它。