Я нашел ответ на свою проблему.Сначала я хочу упомянуть, что я хотел заполнить этот компонент jquery http://dropdown -check-list.googlecode.com / svn / trunk / doc / dropdownchecklist.html извините, если мой первоначальный вопрос был ошибочным.
Javascript для заполнения моего плагина JQuery для выпадающего списка выглядит следующим образом:
$(document).ready(function() {
//These will apply the jquery drop down checklist to both of selects
$(".s1").dropdownchecklist({ width: 205});
$( "button, input:button", null).button();
loadUserRoles();
loadUserRegions();
});
function loadUserRoles(){
var userName = $("#userName").val();
var hostname = getHostName();
var requestURL = hostname.concat("fos", "/users/userRoles?userName="+userName);
$.getJSON(requestURL, null, function(data){
var userRoles = new Array();
$.each(data.list, function(i,item){
userRoles.push(item.id.toString());
});
$("#role").dropdownchecklist("destroy");
$("#role").val(userRoles);
$("#role").dropdownchecklist();
//$("#role").dropdownchecklist("refresh");
});
}
function loadUserRegions(){
var userName = $("#userName").val();
var hostname = getHostName();
var requestURL = hostname.concat("fos", "/users/userRegions?userName="+userName);
$.getJSON(requestURL, null, function(data){
var userRegions = new Array();
$.each(data.list, function(i,item){
userRegions.push(item.id.toString());
});
$("#region").dropdownchecklist("destroy");
$("#region").val(userRegions);
$("#region").dropdownchecklist();
});
}
function getHostName(){
var url = document.URL;
var rv = url.indexOf("fos");
var hostname = url.substring(0, rv);
return hostname;
}
Мое действие grails, которое возвращает JSON, выглядит следующим образом:
def userRoles = {
/* This action gets the user roles and returns it as JSON*/
def user = Users.findByUserName(params["userName"])
def rolesInstanceList = Authorities.findAllByUser(user)
def outputList = new JSONObject()
def rolesList = new JSONArray()
def jsonRole = null
rolesInstanceList.each {
jsonRole = new JSONObject()
def role = it.role
jsonRole.put("id", role.id)
jsonRole.put("roleName", role.roleName)
rolesList.put(jsonRole)
}
outputList.put("list", rolesList)
render outputList as JSON
}