我使用的是grails 2.1.0。我的视图页面中有一个自动填充字段。对于自动完成字段,我使用了richui插件。结果显示在框中。现在我想使用该字段的值的id而不是字符串。但我没有得到/设置id。我不知道如何从该字段中获取id。请有人请帮助我。以下是我的源代码:
我的观看页面>>>
<g:form controller="autocomplete" action="doSomething">
<richui:autoComplete id="countryName" name="countryName" action="${createLinkTo('dir': 'autocomplete/searchCountry')}" />
<br/>
<g:submitButton name="doSomething" />
</g:form>
我的自动完成控制器操作&gt;&gt;&gt;
def searchCountry = {
def country = Country.findAllByNameLike("${params.query}%")
//Create XML response
render(contentType: "text/xml") {
results() {
country.each { countries ->
result(){
name(countries.name)
id(countries.id)
}
}
}
}
}
我希望使用id&gt;&gt;&gt;
的行动def doSomething(){
def val = "Country Id is -- > " + params.countryName
render val
}
答案 0 :(得分:1)
嘿我已经解决了这个问题,只需调用一个javascript函数并添加一个隐藏字段。如下:
<richui:autoComplete id="countryName" name="countryName" action="${createLinkTo('dir': 'autocomplete/searchCountry')}"
onItemSelect="callCountry(id)"/>
我的隐藏字段&gt;&gt;&gt;
<g:hiddenField id ="countryId" name ="countryId" value=""/>
头部中的js函数&gt;&gt;&gt;
<script type="text/javascript">
function callCountry(countryId){
document.getElementById('countryId').value = countryId;
}
</script>
答案 1 :(得分:0)
根据插件文档,您可以访问onItemSelect
<richui:autoComplete id="countryName" name="countryName"
action="${createLinkTo('dir': 'autocomplete/searchCountry')}"
onItemSelect="document.location.href='${createLinkTo(dir: 'doSomething')}/' + id;"
/>
如此配置,只要用户从自动填充列表中选择一个项目而不必明确点击提交,就会调用操作(带有id)。