У меня есть 2 коробки выбора, один с названиями автомобилей и второй с моделями автомобилей, когда я выбираю название автомобиля (например, BMW), второе поле выбора должно обновляться с моделями автомобилей, принадлежащими BMW. Я создаю этот логиг с помощью jQuery. но проблема в том, что мой веб-дизайнер создает действительно классный дизайн коробки с css3, и для этого ему нужен скрытый ввод и выберите тег с идентичным атрибутом ID (e.x. id = "car_model"). и когда я вызываю функцию jQuery, она обновляет скрытый ввод и заполняет его параметрами. как я могу выбрать select с id = "car_model" вместо скрытого типа с тем же id = "car_model".Выберите правильный тег html через jQuery в Grails
Контроллер:
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)
});
}
EDIT:
Идентификаторы должны никогда быть одинаковым - вы можете использовать одно и то же имя на входах, но использовать разные идентификаторы, если плагин Grail требует, чтобы у вас были идентичные идентификаторы, я бы не использовал его – Pete