迭代选择选项

时间:2012-02-09 17:04:16

标签: jquery

我是jquery的新手,并且在过去的几天里一直在尝试它并且已经成功使用它直到我达到这一点。我正在编辑用户页面,我在从已从数据库填充的列表中选择正确的角色时遇到问题。 //这是选择用户下拉列表

  <select id="ddlUsers" name="ddlUsers" >
    <option value="0">--Select User--</option>
    <%for(Usertable user:usertableModel.getAllUsertables()){ %>
      <option id="<%=user.getUserid() %>" value="<%=user.getUserid() %>" 
          onclick= "showUserRole('<%=user.getRole().getRoleid() %>' )">     <%=user.getLastname() %> , <%=user.getFirstname() %>
   </option>
   <%} %>

//这是我想要从第一个下拉列表中选择正确角色的选择选项。

<select name="ddlRoles">
  <%for(Role r:roleModel.getAllRoles()){ %>
    <option value="<%=r.getRoleid() %>"><%=r.getRolename() %></option>
  <%} %>
</select> 

//这是我试图使用的jquery

function showUserRole(role){
   $('#ddlRoles').each(function(){
      if($('option', this).val() == role){
    $('option', this).attr("selected","selected");
      }
  });
 }

但显然它不起作用....所以任何帮助都表示赞赏...谢谢

3 个答案:

答案 0 :(得分:1)

尝试

$('#ddlRoles').find("option[value='"+role+"']").attr("selected","selected");

答案 1 :(得分:1)

ddlRolesname attribute的值,您无法将其用作id selector。试试这个

如果<select name="ddlRoles">

然后

function showuserRole(role){
    $('select[name="ddlRoles"]').val(role);
}

将其更改为<select id="ddlRoles">

然后

function showuserRole(role){
    $('select#ddlRoles').val(role);
}

答案 2 :(得分:0)

只需将#ddlRoles的值设置为您传入的角色,即可简化showuserRole功能。

function showuserRole(role){
    $('#ddlRoles').val(role);
}