автозаполнение jquery с помощью dwr

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

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

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

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

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

С Уважением


person Community    schedule 05.10.2009    source источник
comment
по крайней мере, может ли кто-нибудь указать мне на версию плагина автозаполнения jquery ui.   -  person    schedule 05.10.2009


Ответы (4)


Арун прав со своим подходом, но может понадобиться немного изменить. Я тестировал его с 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, а также вводимый текст (см. ответ Аруна).

person diego    schedule 24.08.2012

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

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);
            }
        });
    }

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

});

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

person TheFanatic    schedule 10.07.2011

Это довольно просто, используйте технику вызова DWR ajax и используйте метод автозаполнения 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) ;
        });
    });

});
person Arun    schedule 18.07.2011