1

我正在为内部 Web 应用程序开发移动选项。我有一个在 PC 端工作的自动选择,但是在移动端查看时,搜索结果在显示时看起来很糟糕: 格式错误 http://www.rkrdevel.com/files/mobile_autoselect.png

理想情况下,我希望列表视图看起来更像一个下拉列表。在手机上显示时,我知道它可能会列在键盘下方,但目前还可以。

我在我的主站点和移动站点上都使用了相同的代码片段。为了确定它是否是移动设备,我调用了一个我制作的函数:check_mobile()。

我在某处找到了自动选择代码,但不确定如何将格式应用于结果集。任何帮助表示赞赏。

html:

<div class="ui-widget">
    <p>To find a customer, enter the Customer name, all lower case and no spaces. For example, bwi or t&r</p>
    <label for="Customer">Customer Name: </label>
    <input id="Customer" placeholder="Search"/>
    <div class="ui-widget" id="results" style="width: 600px; font-weight: bold; border-bottom: black;">Search Results: </div>
    <div data-theme="b" id="custData"  data-collapsed="true" data-role="collapsible"></div><!--class="ui-widget-content"-->
</div>

jquery自动选择功能:

init: function(){
    $('#results').hide();
    $( "#Customer" ).val('');
    $( "#Customer" )
        // don't navigate away from the field on tab when selecting an item
        .bind( "keydown", function( event ) {
            if ( event.keyCode === $.ui.keyCode.TAB &&
                    $( this ).data( "autocomplete" ).menu.active ) {
                event.preventDefault();
            }
        })
        .autocomplete({
            delay: 500,
            source: function( request, add ) {
                $.getJSON( cust.url+"?funct=1" , {term: cust.extractLast( request.term )}, function(data) {  
                    //create array for response objects  
                    var suggestions = [];  
                    //process response
                   for(var i =1, ii=data[0];i<=ii;i++){
                        suggestions.push(data[i].ABAN8 + ':' + $.trim(data[i].ABDC));
                    }  
                    //pass array to callback  
                    add(suggestions);
                });
            },
            search: function() {
                // custom minLength
                $( "#custData" ).hide();
                $('#results').hide();
                var term = cust.extractLast( this.value );
                if ( term.length < 2 ) {
                    cust.clearReportData();
                    return false;
                }
            },
            focus: function() {
                // prevent value inserted on focus
                return false;
            },
            select: function( event, ui ) {
                var terms = cust.split( this.value );
                // remove the current input
                terms.pop();
                // add the selected item
                terms.push( ui.item.value );
                // add placeholder to get the comma-and-space at the end
                terms.push( "" );
                cust.getfulldetail(ui.item.value);
                return false;
            }
        })
        .focus();
},
4

2 回答 2

1

JQM 有许多自动完成解决方案,您需要查看JQM 自动完成这个实现

于 2012-12-06T15:02:08.757 回答
0

这里的具体问题是您忘记将css文件添加到您的解决方案中,并且排序很重要,例如

  <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.9.2.custom.css" />
于 2013-02-27T16:26:18.480 回答