JQuery Автозаполнение с DWR - PullRequest
1 голос
/ 05 октября 2009

кто-нибудь пытался использовать плагин автозаполнения jquery с DWR в качестве источника данных.

Мне нужна функция автозаполнения для моей страницы, но я также использую dwr вместо типичного вызова ajax.

Я нашел одну ссылку относительно этого, но я не могу найти исходный код для этого!

http://www.nabble.com/-autocomplete--jquery-%2B-dwr-td22691104s27240.html

Может кто-нибудь помочь мне найти этот источник и использовать его?

1012 * привет *

Ответы [ 4 ]

1 голос
/ 24 августа 2012

Арун прав в своем подходе, но может понадобиться что-то изменить. Я протестировал его с DWR-3.0.0-RC2, jquery-1.7.2.min.js и jquery-ui-1.8.23.custom.min.js. Вместо:

$('#autoCompTxt').autocomplete(data) ;

определяет параметр source :

$('#autoCompTxt').autocomplete({source:data});

Кроме того, хороший ответ можно немного улучшить, проверяя длину autoCompTxt . Примерно так:

$(function() {
    $('#autoCompTxt').keyup(function() {
        var val = $('#autoCompTxt').val();
        if(val.length>2) {  // check length
            TestService.ajaxAutoCompleteTest(val, function(data) {
                // handle successful DWR response
                $('#autoCompTxt').autocomplete({source:data});
            });
        } else {
            $('#autoCompTxt').autocomplete({source:[]});  // clean
        }
    });
});

Конечно, импорт скриптов и CSS и ввод текста должны быть сохранены (см. Ответ Аруна).

0 голосов
/ 10 июля 2011

Я не очень понимаю, что написал Ойвинд Мартинсен, но я думаю, что-то вроде этого:

jQuery(inputSelector).autocomplete({

.....................

    source : function(request, response) {
        TheClass.theMethod(request.term,{
            callback: function(TheDataFromServer) {
                var arrayOfData = [];
                for(i = 0;i < TheDataFromServer.length;i++){
                    arrayOfData.push(TheDataFromServer[i].someStringIfDataNotString);
                }
                response(arrayOfData);
            }
        });
    }

.....................

});

должно работать.

0 голосов
/ 18 июля 2011

Все довольно просто, используйте метод вызова ajax DWR и используйте метод автозаполнения jQuery внутри опции обратного вызова. Пожалуйста, обратитесь к приведенному ниже примеру. Импорт сценариев, импорт CSS должен быть в следующем порядке

<LINK href='<%=contextPath %>/styles/jquery.autocomplete.css' rel="stylesheet" type="text/css">
<LINK href='<%=contextPath %>/styles/main.css' rel="stylesheet" type="text/css">
<script type="text/javascript"src="<%=contextPath%>/scripts/jquery.min.js"></script>
<script type="text/javascript"src="<%=contextPath%>/scripts/jquery-ui-1.8.2.custom.min.js"></script>`enter code here`
<script type='text/javascript' src='<%=contextPath %>/scripts/jquery-latest.js'></script>
<script type='text/javascript' src='<%=contextPath %>/scripts/jquery.bgiframe.min.js'></script>
<script type='text/javascript' src='<%=contextPath %>/dwr/interface/TestService.js'></script>
<script type='text/javascript' src='<%=contextPath %>/scripts/jquery.autocomplete.js'></script>

TEXT BOX SHOULD BE LIKE BELOW

<input id="autoCompTxt" type="text">

JQUERY FUNCTION SHOULD BE WRITTEN THIS WAY

$(function() {
    $('#autoCompTxt').keyup(function() { 
        var val = $('#autoCompTxt').val() ;
        TestService.ajaxAutoCompleteTest(val, function(data){
           $('#autoCompTxt').autocomplete(data) ;
        });
    });

});
0 голосов
/ 26 января 2011

Плагин автозаполнения пользовательского интерфейса jQuery довольно прост (http://jqueryui.com/demos/autocomplete/) с dwr.

Пример

jQuery( function() {  
    Cities.getAllCities(function(data) {
         var input = jQuery("#cities");
         input.autocomplete({
             minLength: 1,
             source: data
         });
    }
});
...