2012-06-13 53 views
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); 
     } 
    }); 
});​ 

謝謝

+0

爲什麼有一個'length * 2'肯定會輸出兩倍的選擇? – AbstractChaos

+0

我正在嘗試一些事情!我想要的是停止選擇框後選擇4的限制。你有什麼想法如何做到這一點? – user1421432

+0

我是新手,我設法用這個腳本來做我最需要的。你可以顯示我的小提琴熱添加它 – user1421432

回答

0

OK。現在我明白了這個要求,應該讓你停止選擇你要求什麼。從停止狀態變爲可選狀態意味着您可以在「已選擇」之前決定,而不是在停止被觸發之後決定。

fiddle

+0

我的問題是:當我選擇更多tham 4時,是否可以停止選擇框? – user1421432

+0

好吧,我以爲你只是想在事後刪除它,我的錯誤編輯我的答案,以反映這一點。 – AbstractChaos

0

這工作

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

this重複

編輯 這樣的事情?

$(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); 
     } 
    }); 
});? 
+0

我以前見過,但我可以設法將其添加到腳本中並使其工作!你能幫我嗎 – user1421432

+0

增加編輯與特定的腳本 – Elad

+0

如果我寫的沒有幫助,請進一步描述問題 – Elad