簡體   English   中英

如何從 jQuery 修改多選列表的 onOptionClick function

[英]How to modify the onOptionClick function of a multiselect list from jQuery

我對 JQuery-multiselect 有疑問。 我創建了一個工作正常的多選列表。 我需要對其進行修改,以便用戶不能在列表中 select 超過 3 個選項。 我找不到執行此操作的語法,因此請您幫忙。

在這里我初始化我的列表:

jquery_objet_types_multiselect = jQuery('#id_...').multiselect({
            columns: 1,
            placeholder: 'Sélection ...',
            search: true,
            selectAll: true
        });

這是我還不能做的部分:

jquery_objet_types_multiselect.multiselect('onOptionClick', function( element, option ) {
                if( $(element).val().length > maxSelectTypeFlux ) {
                    if( $(option).is(':checked') ) {
                        var thisVals = $(element).val();

                        thisVals.splice(
                            thisVals.indexOf( $(option).val() ), 1
                        );

                        $(element).val( thisVals );

                        $(option).prop( 'checked', false ).closest('li')
                            .toggleClass('selected');
                    }
                }
                else if( $(element).val().length == maxSelectTypeFlux ) {
                    $(element).next('.ms-options-wrap')
                        .find('li:not(.selected)').addClass('disabled')
                        .find('input[type="checkbox"]')
                            .attr( 'disabled', 'disabled' );
                }
                else {
                    $(element).next('.ms-options-wrap')
                        .find('li.disabled').removeClass('disabled')
                        .find('input[type="checkbox"]')
                            .removeAttr( 'disabled' );
                }
            });

我在一開始就聲明了 jquery_objet_types_multiselect 和 maxSelectTypeFlux。

謝謝你的幫助!

在您的 function 的頂部按照這些思路放置一些東西(可能必須進行調整才能在您的情況下工作)可能會起作用。 這個想法是檢查是否已經選擇了 3 個選項(我的邏輯可能在星期五早上有點偏離,哈哈),如果已經選擇了 3 個選項,您希望不允許用戶添加另一個選項並退出function。

if ($('option').length == 3) {
    $(element).preventDefault()
    return;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM