0

我有一个像这样选择的组列表:

<select id="groups">

<option value="g1">G1</option>
<option value="g2">G2</option>
<option value="g3">G3</option>

</select>

我有一个联系人列表,其中基本上包含:

Name = group
============
Casper  G1-G2-G3
Andy    G1-G2
Mark    G2-G3 

当用户检查checkboxCasper单击Edit按钮时,G1-G2 and G3应在组列表中突出显示(已选择)。当我在联系人列表中获取组字段的值时,三个组都带有逗号"G1-G2-G3"。非常感谢您的帮助。谢谢,

4

3 回答 3

1

您可以使编辑按钮将所选属性分配给选项,然后使用 css 对其进行样式设置。

option[selected] { background: #f00; }
于 2012-07-25T12:22:22.797 回答
1

一些提示,我相信你自己解决这个问题对你有好处;)

  • 似乎Casper属于多个组,所以你应该设置multiple="true"你的select

  • 当您检查时Casper,检索与他关联的组数据,例如["g1", "g2", "g3"]。遍历此列表,并将每个选项的值设置为selected

  • 如果你想支持 IE6,你还需要添加一个类,比如说selected选项selected

  • CSS 规则{ option.selected: background: yellow}可以解决问题。

  • 如果您只针对现代浏览器,则option[selected]{ xxx }效果很好。

于 2012-07-25T12:26:48.410 回答
1

好的,所以我猜有一个复选框Casper,单击时会调用以下函数:

function(groupstring) {
// groupstring is something like "G1-G2"

    var groups = groupstring.split("-");
    var options = document.getElementById("groups").options;
    for (var i=0; i<options.length; i++) {
        var opt = options[i];
        opt.defaultSelected = groups.indexOf(opt.value) > -1;
    }
}

我不确定您是否要使用该属性selected或该defaultSelected属性。请注意,您的选择应multiple设置为 true ( <select id="groups" multiple>)。

于 2012-07-25T12:55:22.747 回答