0

我有一个带有选项的选择元素,其中包含组:

<select id="my_SiteGroups" style="width:200px;">
      <option value="default" disabled="disabled">Select a group</option>
      <option value="Admin">Admin</option>
      <option value="Dev">Dev</option><option value="SSH-RAR">SSH-RAR</option> 
      <option value="Students">Students</option>
      <option value="test">test</option>
</select>

当我选择一个组时,我会收到一个包含所选组信息的 XML 响应:

<GetGroupInfo xmlns=
   "http://schemas.microsoft.com/sharepoint/soap/directory/">
   <Group ID="3" Name="Group1" Description="Description" OwnerID="1" 
      OwnerIsUser="False" />
</GetGroupInfo>

我正在尝试使用 XML 响应来使用组信息填充输入元素,以便我可以使用另一个函数来更新组信息。这是它的样子:

在此处输入图像描述

根据上面 groupInfo XML 中的组 ownerID,我正在尝试设置当前组所有者。组所有者选择包含我所有用户的列表,并且填充如下:

<select id="groupOwner">
<option value="default">Select a group owner</option>
<option value="i:0#.w|itun\cbsadmin_comp.c" ownerid="70">cbsadmin</option>
. 
. 
. 
</select>

因此,我试图让我的代码从返回的 XML 中查看组的 ownerId,通过 groupOwner 选择标记中的 groupOwner 选项并查找具有匹配 ownerID 的选项,然后设置我的选择标记值使用该选项值。

JS:

function groupInfo(group){
  $().SPServices({
    operation: "GetGroupInfo",
    groupName: group,
    completefunc: function (xData, Status){
      var result = $(xData.responseXML);
      result.find('Group').each(function(){
        $('#groupID').val($(this).attr('ID'));
        $('#groupName').val($(this).attr('Name'));
        $('#groupDesc').val($(this).attr('Description'));
        $('#groupOwner').val($(this).attr('OwnerID'));
      });
    }
  });

HTML:

  <td>
    <label>Group ID: </label><input type="text" id="groupID" disabled="true"/></br>
    <label>Name: </label><input type="text" id="groupName" /></br>
    <label>Description: </label><input type="text" id="groupDesc" /></br>        
    <label>Owner: </label><select id="groupOwner"><option value="default">Select a Group Owner</option></select></br>
    <div class="listControl"><a onclick="updateGroupInfo()">Update Group Info</a></div>
  </td>
4

1 回答 1

0

尝试使用prop() 之类的,

// if owner id is based on indexing
$('#groupOwner').prop('selectedIndex',$(this).attr('OwnerID'));

或者试试

$('#groupOwner option').removeAttr('selected');// remove selected attribute first
// then add selected attribute based on ownerId
$('#groupOwner option[value="'+$(this).attr('OwnerID')+'"]').attr('selected','selected');

读取removeAttr()

于 2013-10-29T05:00:28.697 回答