我有2個選擇框,一個選擇了汽車名稱,另一個選擇了汽車模型,當我選擇汽車名稱(e.x. BMW)時,第二個選擇框必須更新屬於BMW的車型。我用jQuery創建了這個logig。但問題是,我的網頁設計師用css3創建了非常酷的選擇框設計,因此他需要隱藏輸入並選擇具有相同ID屬性的標籤(e.x.id =「car_model」)。當我調用jQuery函數時,它會更新隱藏的輸入並使用選項填充它。我可以如何選擇id =「car_model」而不是隱藏類型與id =「car_model」相同。通過jQuery在Grails中選擇正確的html標記
控制器:
class HomeController {
def index() {
def cars = Car.list();
render (view: '/index', model:[cars:cars])
}
def getModels(params) {
def models = Models.findAll {
car.id == params.id
}
println(models)
withFormat {
html {
render(template:'/select',model:[model:models])
}
json {
render models as JSON
}
}
}
}
視圖:
<div class="row field_select">
<label class="label_title">Select Maker:</label>
<g:select class="select_styled" name="car_maker" from="${cars}"
optionKey="id"
optionValue="name"
noSelection="['':'- Choose a car -']"
onchange="${remoteFunction(
action:'getModels.json',
onSuccess:'getCarModels(data)',
params:'\'id=\' + this.value')}"/>
</div>
<div class="row field_select" >
<label class="label_title">Select Model:</label>
<select class="select_styled" name="car_model"></select>
</div>
的jQuery:
function getCarModels(data) {
var $element = $('#car_model');
$element.empty();
$.each(data, function(id, modelName) {
var option = $('<option/>').val(id).text(modelName);
$element.append(option)
});
}
編輯:
ID應該永遠選擇是一樣的 - 你可以在輸入上使用相同的名字,但使用不同的ID,如果聖盃插件要求你有相同的ID,我不會使用它 – Pete