[Grails] Grails 学习笔记 (七)– 实战 Grails JQueryUI Autocomplete

icress 2011-06-15
前面写过关于JQuery的autocomplete的例子,发现跟JQueryUI不一样,代码不通用,头痛啊,但是很想统一用JQueryUI来解决问题,所以,再次实践

改进的地方,前面那个例子,是返回所有的字段,很不爽,会造成信息泄漏。不多说了,直接上代码
1、service

 	
def tb(input) {
	def result = Tb.withCriteria{
            projections{
                property("id")
                property("tb001")
            }
            ilike("tb001", "%"+input + "%")
            maxResults(10)
            order("tb001", "asc")
        }
        return result
    }


2、controller

	import grails.converters.JSON
	def ajaxService
	def tb = {
		def input = params.term
		render ajaxService.moctb(input) as JSON
    	}


3、GSP


		var sid;//选择的ID
		$(document).ready(function(){
			$("#autocomplete").autocomplete({
				source: function(request, response) {
			        $.ajax({
			            url: "${createLink(controller:'daily', action: 'tb')}",
			            data: { term: request.term },
			            dataType: "json",
			            type: "POST",
			            success: function( data ) {
			            	response( $.map( data, function( item ) {
								return {
									  value: item[1]
									, label: item[1]
									, id : item[0]
								}
							}));
			            }
			        });
			    }
				,select: function( event, ui ) {
					sid = ui.item.id;
				}
			});
		});



4、备注
1、JQUERY & JQUERY-UI
Global site tag (gtag.js) - Google Analytics