【问题标题】:how to bind value in to hidden field如何将值绑定到隐藏字段
【发布时间】:2014-11-08 23:09:58
【问题描述】:

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

(值: item.fromlocationname, 标签: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;
    });
}
});


});//]]>  

【问题讨论】:

  • 不清楚你在问什么。什么是“fromlocationid”以及“存储隐藏字段”是什么意思?你指的是input type="hidden"吗?您是要向该输入写入一个值还是从该输入读取一个值?您的代码有什么问题?
  • 值:item.fromlocationid,标签:item.fromlocationname 当用户单击fromlocationname时,我需要将fromlocationid存储到隐藏字段中

标签: jquery autocomplete


【解决方案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
    };
}

不过,这似乎并不完全正确。请记住,此函数将被多次评估,data.items 中的每个item 一次。因此,您将多次设置 input 的值,之后它将仅包含 data.items 数组中最后一个元素的值。

因此,您可能需要至少 一些 考虑您在此处实际尝试完成的逻辑。机械地作为语言的一部分,这就是您将值设置为input 的方式。从逻辑上讲,您实际上要完成的工作仍不清楚,您需要处理它。

【讨论】:

  • 我有一个像上面这样的隐藏字段我可以把代码参考我的代码上面 $('#myHiddenField' ).val(item.fromlocationid);
  • @user2555935:您可以将代码放在需要执行的任何位置。在您拥有要分配的值的任何点,您都可以分配该值。如果该值来自item 对象,那么看起来代码需要位于您传递给.map() 的匿名function(item) {} 函数中。
  • 你能用你所说的编辑我的代码吗,因为我是 jquery 和自动完成的新手,请帮助我
  • 返回 {value: item.fromlocationname,label: item.fromlocationname} 后我可以在哪里添加; $("#university").val(item.fromlocationid);警报(item.fromlocationid);
  • @user2555935:我已经更新了答案来演示。但是,请注意,目前尚不清楚您实际上要做什么。如何在 input 上设置值非常简单,但设置的位置/原因取决于您。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-06
  • 1970-01-01
  • 1970-01-01
  • 2016-12-18
  • 1970-01-01
相关资源
最近更新 更多