1

jQueryMultiSelectプラグインを使用しています。次のような要件があります-デフォルトで英語を選択し、ユーザーが英語を削除できないようにします。

私は次のように試しました(英語は常にチェックされますが、値は削除されます):

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表現です。御時間ありがとうございます。

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 に答える