2012-12-18 36 views
1

我已經從Alidad的博客指導,以使Grails的內jQuery的自動完成功能如下:Grails的jQuery的自動完成選擇ID爲另一個輔助自動完成功能

http://alidadasb.blogspot.co.uk/2011/12/enabling-jquery-autocomplete-with.html

Country.groovy

package rentspace 
    class Country { 
     String name 
     static hasMany = [cities:City] 
    } 

City.groovy

package rentspace 

class City { 
    //static belongsTo = [country:Country] 
    static belogsTo = Country 
    Country country 
    String name 
    static constraints = {} 
} 

GS第P頁:

<g:autoComplete id="countrySearch" 
       action='autocompleteCountry' 
       controller='any' 
       domain='rentspace.Country' 
       searchField='name' 
       collectField='id' 
       value='' 
/> 

<g:textField id="hiddenState" name="hiddenState" value=""/> 

<label>City:</label> 
<g:autoComplete name="citySearch" id="citySearch" 
       cid="" 
       action='autocompleteCityAction' 
       controller='any' 
       domain='rentspace.City' 
       searchField='name' 
       value='' 
/> 

AutoCompleteTagLib.groovy

package rentspace 

class AutoCompleteTagLib { 
.. 
       if (attrs.style) styles = " styles='${attrs.style}'" 

     if (attrs.cid) 
      cid="&cid="+attrs.cid 
     else 
      cid="" 

      ....... 

       out << "&order="+attrs.order 
     out << ""+cid 



       out << "&collectField="+attrs.collectField 

     out << "',select: function(event, ui) {" 
     out << " \$('#hiddenState').val(ui.item.id);}," 
     //out << " \$('#citySearch').attr('cid',ui.item.id);}," 
     out <<" search: function() {" 
     out << "\$('#hiddenState').val('');" 
     //out << "\$('#citySearch').attr('cid','');" 
     out <<"}" 

       out << ", dataType: 'json'" 
       out << "});" 
     out << " });" 
     out << "</script>" 

     } 

     def autoCompleteHeader = { 
       out << "<style>" 
       out << ".ui-autocomplete-loading" 
       out << "  { background: white url(${resource(dir:'images',file:'ajax-loader.gif')}) right center no-repeat }" 
       out << " </style>" 
     } 
} 

我的問題是有關的jQuery返回雙值,它似乎是工作,如果我的值返回到隱藏或文本字段框。我想要做的是將國家ID返回到citySearch的第二個自動完成框。 因此,一旦用戶自動完成國家,國家id將返回爲cid ='1'或任何id到citySearch自動完成框的cid屬性。

在標籤庫中有一個段註釋掉了哪個位置可以成功返回或更新hiddenState字段的值,但無論嘗試更新cid值我試圖保持失敗嗎?

 //out << " \$('#citySearch').attr('cid',ui.item.id);}," 

有沒有人成功地做過這樣的事情?

E2A:

https://github.com/vahidhedayati/grailscountrycity

項目可以從上面的鏈接下載,有一個關於自述

回答

1

問題一直Alidad這裏解決內部問題的一些信息:{countryid: \ $( '#hiddenField')。VAL()}

https://github.com/alidadasb/CountryCityAutoComplete

out << "\$('#" + attrs.id+"').autocomplete({ " 
        out << " source: " 
        out << " function(request, response) { " 
        out << " \$.getJSON(' " 
        out << createLink(link) 
        out << "?" 
        out << "term=' + request.term + '" 
out << "&domain="+ attrs.domain 
        out << "&searchField="+attrs.searchField 
        out << "&max="+attrs.max 
        out << "&order="+attrs.order 
        out << "&collectField="+attrs.collectField 
        out << "', { countryid: \$('#hiddenField').val() }, " 
        out << " response); } " 
        out << ", dataType: 'json'" 
        out << "});});" 
        out << "</script>" 

工作版本可以在這裏看到: http://countrycity.cloudfoundry.com

+0

現在爲這個插件:http://grails.org/plugin/ajaxdependancyselection – Vahid