Alidad のブログのガイドに従って、grails 内で jquery オートコンプリートを有効にしています。
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 = {}
}
GSP ページ:
<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 によって返される二重値に関連しています。非表示またはテキスト フィールド ボックスに値を返すと、機能しているように見えます。私がやろうとしているのは、citySearch である 2 番目のオートコンプリート ボックスに国 ID を返すことです。したがって、ユーザーが国をオートコンプリートすると、国 ID が cid='1' として返されるか、または ID が何であれ、citySearch オートコンプリート ボックスの cid 属性に返されます。
タグlibにはコメントアウトされたセグメントがあり、hiddenStateフィールドの値を返すか更新することに成功しますが、cid値を更新しようとしても失敗し続けますか?
//out << " \$('#citySearch').attr('cid',ui.item.id);},"
誰かがこのようなことをすることに成功しましたか?
E2A:
https://github.com/vahidhedayati/grailscountrycity
プロジェクトは上記のリンクからダウンロードできます。readme 内に問題に関する詳細情報があります。