1

我正在使用jQuery MultiSelect 插件。我有一个要求 - 默认选择英语,用户不能删除英语。

我尝试过(它使英语始终被检查,但值被删除):

查询:

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 表示。谢谢你的时间。

4

2 回答 2

2

您正在使用的插件无法执行此操作,但只需对插件稍作更改,您就可以轻松实现此行为,

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

  2. 使用将本地保存的文件加载到您的项目中<script src="..THE FILE PATH..."></script>

  3. 替换行号 73 与var html = '<label><input type="checkbox" name="' + id + '[]" value="' + option.value + '"' + (option.disabled?' disabled="disabled"':'');

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

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

  6. 在您的 html 代码中 - 将disabled="disabled"属性添加到option您要禁用的

  7. 你完成了

此实现不需要回调函数

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

于 2012-08-17T14:14:00.290 回答
0

这对你有帮助吗?

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

于 2012-08-17T14:04:08.163 回答