如何在multiSelect下拉列表中创建强制/只读选项

时间:2012-08-17 13:26:26

标签: javascript jquery html css multi-select

我正在使用jQuery MultiSelect plugin。我有一个要求 - 默认情况下选择英语,用户无法删除英语。

我试过了(它总是检查英语,但删除了值):

JQUERY:

jQuery("#language").multiSelect({
    oneOrMoreSelected: '*',
    selectAll: false,
    noneSelected: 'Check some languages!'
}, function(objCheckbox) {
    if (jQuery(objCheckbox).val() == "English") {
        jQuery(objCheckbox).attr("checked", "checked");
    }
});​

HTML:

<select id="language" name="language" multiple="multiple" style="width:300px;">
    <option value="English" selected="selected">English</option>
    <option value="Hindi">Hindi</option>
    <option value="Spanish">Spainish</option>
    <option value="Urdu">Urdu</option>
    <option value="French">French</option>
    <option value="Bengali">Bengali</option>
</select>​

如果它有帮助,这是jsfiddle representation。谢谢你的时间。

2 个答案:

答案 0 :(得分:2)

您正在使用的插件无法让您执行此操作,但只需对插件进行少量更改即可轻松实现此行为,

  1. http://labs.abeautifulsite.net/archived/jquery-multiSelect/jquery.multiSelect.js下载插件的源代码并将其保存在项目的库中

  2. 使用<script src="..THE FILE PATH..."></script>

  3. 将本地保存的文件加载到项目中
  4. 替换行号73 var html = '<label><input type="checkbox" name="' + id + '[]" value="' + option.value + '"' + (option.disabled?' disabled="disabled"':'');

  5. 替换行号442:suboptions.push({ text: $(this).html(), value: $(this).val(), selected: $(this).attr('selected'),disabled: $(this).is(":disabled") });

  6. 将第449行替换为:options.push({ text: $(this).html(), value: $(this).val(), selected: $(this).attr('selected'),disabled: $(this).is(":disabled") });

  7. 您的html代码中的
  8. - 将disabled="disabled"属性添加到您要停用的option

  9. 你已经完成了

  10. 不需要使用此实现的回调函数

    这是一个小提琴:http://jsfiddle.net/KGUmR/ (我添加了已编辑插件的缩小源代码,因为我不想托管它 - 查看Javascript方块底部的插件使用)

答案 1 :(得分:0)

这对你有帮助吗?

http://jsfiddle.net/zorro/VEZMR/9/