【问题标题】:Handling Jquery-ui Autocomplete's label value pairs处理 Jquery-ui Autocomplete 的标签值对
【发布时间】:2016-04-24 13:51:57
【问题描述】:

我正在使用Jquery-ui Autocomplete 扩展名。这是我的使用方法:

<form action="example.php" method="post">
  <input id="auto" name="label" type="text" />
  <input id="coauto" name="value" type="hidden" value="" />
</form>

<script>
    $('#auto').autocomplete({
         source: [{label: 'milan', value: 1}, {label: 'inter', value: 2}, {label: 'juventus', value: 3}]
    })
</script>  

当我点击“m”时,milan 会出现。对于那件事我没有任何疑问。但是我希望米兰的值(即 1)为#coauto's 值。所以我可以将它们发送到example.php。我怎样才能做到这一点?我没有看到任何关于 value 的信息,而 label 工作正常

【问题讨论】:

    标签: jquery jquery-ui autocomplete jquery-ui-autocomplete


    【解决方案1】:

    您可以使用焦点或选择等回调函数。 对于渲染,您可以使用

    .autocomplete("instance")._renderItem = function(ul, item) {

    这里是一个示例代码,只是为了给你一个想法。

    $('#auto').autocomplete({
             source: [{label: 'milan', value: 1}, {label: 'inter', value: 2}, {label: 'juventus', value: 3}]
             ,
    
                focus : function(event, ui) {
    
                    $("#coauto").val(ui.item.value);
                    return false;
                },
    
                select : function(event, ui) {
                    $("#coautoFormField").val(ui.item.value);
    
                    $("#hautoDetailsForm").submit();
                    return false;
                }
    
        })
    

    【讨论】:

    • 为什么我们在最后说return false;
    • focus(event, ui) 只要菜单选项之一获得焦点,就会触发此事件。除非取消(例如,通过返回 false),否则焦点值将设置到 元素中。参考:[链接](tutorialspoint.com/jqueryui/jqueryui_autocomplete.htm
    • 简而言之,一般当你返回false时,就表示你已经处理了那个事件。
    • 感谢您帮助我。它的工作,但#auto 并没有因为我专注于项目而改变。你能提出任何解决方案吗???我用focus: function(event ,ui){}
    猜你喜欢
    • 2015-06-06
    • 2020-10-20
    • 2020-06-13
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-26
    相关资源
    最近更新 更多