私はこれを賢明なものにしようとします... jQueryの複数選択チェックボックスプラグインを使用します。オプションは、AJAX 呼び出しを介して動的に追加されます。ユーザーがアイテム/オプションを選択して選択ボックスを閉じると、アイテムが「削除」アイコンとともに UI に追加されます。アイコンにはIDが動的に追加されているため、ユーザーは閉じた選択ボックスからもチェックを外したいUIからアイテムを削除できます。追加される ID は、選択されたオプションの「値」であるため、UI の項目を選択ボックスのオプションに関連付けることができます。これは、Value が短い (2 語未満) 場合に効果的です。しかし、値が 2 ワードより大きい場合、「認識されない式: チェックボックス [値 = xxxxx]」というエラーが表示されます。このエラーは jQuery からスローされます。
Sizzle.error = function( msg ) {
throw new Error( "Syntax error, unrecognized expression: " + msg );
};
実際の値を「msg」と比較すると、jQuery が ID を 2 語後に切り捨てているように見えるため、既知の selectBox 値と一致させることができません。
わかりましたので、選択した項目の「インデックス」を使用して、それを「削除」アイコンに (識別子とともに) 追加することにしました。これにより、選択ボックスで選択されたオプションに関連付けられます。UI から削除されると、ストリップします。識別子とインデックスを使用するだけです.私の問題は、チェックを外すことができないことです.私はこれを試しました:
$('select#'+cOption).multiselect("widget").find(":checkbox[index="+delVal+"]").each(function() {
this.click(); // Remove check from deleted option
エラーはありません。チェックを外さないでください。
全体を投稿しますが、かなり大きく、やや複雑です。基本的に、値ではなくインデックスで選択したオプションのチェックを外したいだけです。