2017-01-03 55 views
0

嗨,我正在開發一個asp.net應用程序。我有一個列表框,其中包含來自數據庫的某些值。在列表框中我有複選框的項目,並選擇所有選項。它基本上是mutiselect列表框。我可以顯示警報框中選定的項目數量。如果我檢查選擇所有我能夠顯示使用長度屬性的項目數量。每當我取消選擇所有選項,我想顯示0,因爲所有的複選框將被取消選中。我嘗試了很多方法,但仍然無法正常工作。這是我的代碼。 這些是參考資料。如何檢查列表框項是否被選中?

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
<link href="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.0.3/css/bootstrap.min.css" 
    rel="stylesheet" type="text/css" /> 
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.0.3/js/bootstrap.min.js"></script> 
<link href="http://cdn.rawgit.com/davidstutz/bootstrap-multiselect/master/dist/css/bootstrap-multiselect.css" rel="stylesheet" type="text/css" /> 
<script src="http://cdn.rawgit.com/davidstutz/bootstrap-multiselect/master/dist/js/bootstrap-multiselect.js" type="text/javascript"></script> 

下面是我的javascript代碼

$(function() { 
      $('[id*=ddlvendors]').multiselect({ 
       includeSelectAllOption: true 
      }); 
     }); 

這是我的代碼找到從列表框中選擇的項目。

$(".limitedNumbSelect2 option").each(function() { 
       var val = $(this).val(); 
       var tempVal = $(".limitedNumbSelect2").val(); 

       if (tempVal.indexOf(val) >= 0 && selected.indexOf(val) < 0) { 
        selected.push(val); 
       } else if (tempVal.indexOf(val) < 0 && selected.indexOf(val) >= 0) { 
        selected.splice(selected.indexOf(val), 1); 
       } 
      }) 
      alert(selected.length); 

每當我取消選擇所有我的警報不會觸發。我可以就此提出一些建議嗎?謝謝你們。

+0

可以ü成立了的jsfiddle我們呢?我確信我可以幫助你,但我需要看到一些html –

+0

是的當然。謝謝 –

+0

我在找difficutlies來設置小提琴。我運行時無法獲取列表框。這是我的asp.net代碼。

回答

1

我的香草JS的解決辦法是簡單的聽的變化事件,如果輸入了target.checked與否,觸發neccassary代碼:https://jsfiddle.net/67dnnhva/

var allCheckboxes = document.querySelectorAll(".allcheckboxes input"); 
var checkAllElement = document.querySelector("#chkall"); 

checkAllElement.addEventListener("change", toggleSelectAll); 

function toggleSelectAll(input) { 
    if (input.target.checked) { 
    allCheckboxes.forEach(function(input) { 
     input.checked = true; 
    }); 
    } else { 
    allCheckboxes.forEach(function(input) { 
     input.checked = false; 
    }); 
    alert("hello"); 
    } 
} 
+0

非常感謝你......這是行得通......所以這是實現這個目標的唯一方法嗎?我需要重構我的代碼。 –

+0

U可以用jQuery以同樣的方式做到這一點,但在我看來,jQuery正在死亡,並且在香草中這樣做是一樣容易,更多的未來準備:) 如果你想要一個jQuery的例子,我可以做一個你也是 –

+0

是的。如果我得到jQuery代碼,它將很容易集成到我的代碼。非常感謝您的幫助。 –

相關問題