0

我正在尝试使这个可选脚本具有选择限制。我希望它在选择限制超过限制数 4 时停止选择。

http://jsfiddle.net/dw6Hf/51/

$(function() {
    $(".selectable").selectable({
        filter: "td.cs",

        stop: function() {
            var result = $("#select-result").empty();
            var result2 = $("#result2");
            $('.ui-selecting:gt(31)').removeClass("ui-selecting");

        //    alert($(".ui-selected").length);
            $('#divmsg').html($(".ui-selected").length*2+ " box selected")
            if ($(".ui-selected").length > 4) {
                //alert("Selection of only 4 allowed");
                $('#divmsg').html($('#divmsg').html() + ", Selection of only 4 allowed");
                $(".ui-selected").each(function(i, e) {                  
                    if (i > 3) {

                        $(this).removeClass("ui-selected");
                    }
                });
                return;
            }

            $(".ui-selected", this).each(function() {
                var cabbage = this.id + ', ';
                result.append(cabbage);
            });

            var newInputResult = $('#select-result').text();
            newInputResult = newInputResult.substring(0, newInputResult.length - 1);
            result2.val(newInputResult);
        }
    });
});​

谢谢你

4

2 回答 2

0

这有效

$( "#selectable" ).selectable({
    selecting: function(event, ui) {
         if ($(".ui-selected, .ui-selecting").length > 4) {
           $(ui.selecting).removeClass("ui-selecting");
         }
    }       
});

这个的副本

编辑 这样的东西?

$(function() {
    $(".selectable").selectable({
        filter: "td.cs",

        // do not allow selecting more than four items
        selecting: function(event, ui) {
             if ($(".ui-selected, .ui-selecting").length > 4) {
               $(ui.selecting).removeClass("ui-selecting");
             }
        }               

        // do whatever you like with the selected
        stop: function() {
            var result = $("#select-result").empty();
            var result2 = $("#result2");            

            $('#divmsg').html($(".ui-selected").length*2+ " box selected")

            $(".ui-selected", this).each(function() {
                var cabbage = this.id + ', ';
                result.append(cabbage);
            });

            var newInputResult = $('#select-result').text();
            newInputResult = newInputResult.substring(0, newInputResult.length - 1);
            result2.val(newInputResult);
        }
    });
});?
于 2012-06-13T14:55:31.073 回答
0

好的,现在我了解了这个应该给你你所要求的要求。从停止更改为可选意味着您可以在“选择”之前决定,而不是在触发停止之后。

小提琴

于 2012-06-13T14:05:08.340 回答