在下面的例子中,當選擇單擊該國,它顯示在阿賈克斯的國家locaions。替換國家的工廠和代替地點的成本。
在_temp1模板中,只放置工廠和div(用於成本下拉)和一個文本框(用於存儲來自編輯的成本ID)。
爲成本創建另一個模板。這將顯示動態選擇工廠時的成本。
在編輯操作中,您必須發送plantInstance和costInstance來查看。
在create.gsp和edit.gsp
...........
<script type="text/javascript">
jQuery(function() {
getSelectedCountry();
});
function getSelectedCountry(){
var selectedCountry = jQuery("#country").val();
var locationId = jQuery("#locationId").val();
alert(locationId)
if(selectedCountry != ''){
if(locationId!=''){
${remoteFunction (controller: 'country', action: 'locations', params: '\'countryId=\' + selectedCountry+\'&locationId=\'+locationId', update: 'updateLocation')}
}
else
${remoteFunction (controller: 'country', action: 'locations', params: '\'countryId=\' + selectedCountry', update: 'updateLocation')}
}
}
</script>
......
<g:render template="form" />
......
在_form.gsp:
<g:select name="country" id="country" from="${com.ard.Country.list()}"
optionKey="id" noSelection="${['': 'Select']}" value="${countryInstance?.id}"
onchange='getSelectedCountry();'/>
<div id="updateLocation"></div>
<g:textField name="locationId" value="${locationInstance.id}"/>
在_locations.gsp
<g:select id="location" name="location" from="${locations}" value="${locationInstance.id}"optionKey="id" noSelection="${[null: 'Select One...']}"/>
在控制器動作
,
def locations(){
def country = Country.get(params.countryId)
def locations = country.locations
def loc
if(params.locationId)
loc = Location.get(params.locationId)
render(template:"locations",model[locations:locations,locationInstance:loc])
}
在編輯動作:
edit(){
......
render(view:"edit" ,model:[countryInstance:country,locationInstance:locationInstance]
}
嘗試在植物選擇,使用價值屬性 – Visme
我添加它和它的工作。我也希望第二個下拉列表也顯示選定的值。但它並沒有在那裏工作。 – Jerika
在我的回答欄中看到更新的代碼 – Visme