如何以编程方式设置jQuery下拉列表的值?
如何以编程方式将某些复选框设置为选中状态?如何以编程方式设置jQuery下拉列表的值?
该场景如下: 一旦我通过管理员屏幕创建了一个用户,我有一个用于“用户角色”和一个用户区域的jqueryDropdown复选框,因为用户可以有很多角色和许多区域与他/她相关联。没有问题,我完成并保存到数据库。 我也给用户更新用户角色和地区的能力,我想通过jQuery的下拉菜单,检查单做,所以我的做法如下:
- 给他们提供用于在同一屏幕创建用户
- 发出Ajax请求以获取用户特定的角色和区域。
- 现在我想要做的是基于Ajax响应设置来检查与通过DOM脚本响应的值相匹配的复选框。有谁知道如何做到这一点?
我已经找到了答案,以我自己的问题。首先,我想提一提的是,如果我的原始问题是误导性的,我很想填写这个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", "https://*.com/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", "https://*.com/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
}
感谢您回复并用您的解决方案回答您的问题。它可以帮助未来可能会遇到类似问题的人。 – 2011-03-04 16:06:59
返回一些JSON与国家...
{
"roles": {
"role1": true,
"role2": false
},
...
}
那么一些jQuery的应该做的......
$.each(json.roles, function(role, state) {
$(':checkbox[name="' + role + '"]')[0].checked = state;
});
感谢您的评论,但我需要使它与这个jQuery组件在这里工作http:// dropdown-check- list.googlecode.com/svn/trunk/doc/dropdownchecklist.html它不是一个常规的复选框组件。 – Viriato 2011-03-04 14:00:23
我已经创建了一个类结构,其中一般创建DDCL并且代码:
$('#selectorid').dropdownchecklist('destroy');
破坏了最初创建的DDCL的完整性。
我发现,这种解决方案的工作原理大致为我的应用更好:
$('#selectorid').val(values);
$('#selectorid').dropdownchecklist('refresh');
其中 '值' 是值的阵列(例如,[1,2,3])。这不会破坏最初创建的DDCL的完整性。
请参阅http://*.com/questions/1375334/jquery-dropdown-checklist-plugin-question – Orbit 2011-03-04 01:33:27