2013-12-16 76 views
0

我有這些有更改事件的複選框。當我通過button.Change事件檢查這些複選框不會觸發。它出什麼問題了?當按鈕執行檢查操作時,更改不起作用

的Html

<button>aaa</button> 
    <input type="checkbox"> 
    <input type="checkbox"> 
    <input type="checkbox"> 
    <input type="checkbox"> 
    <input type="checkbox"> 
    <input type="checkbox"> 

jQuery的

$(':checkbox').on('change',function(){ 
alert("checked"); 
}); 

$('button').on('click',function(){ 
    $(':checkbox').prop('checked',true); 
}); 

演示http://jsbin.com/idiweJo/1/

+0

_via外部button_是什麼意思?你的意思是你旁邊的複選框的按鈕? – putvande

+0

@putvande我的壞。編輯它按鈕:)。 yup nxt – Ace

回答

2

只是在按鍵檢測之後再次調用函數改變點擊

$('button').on('click',function(){ 
    $(':checkbox').prop('checked',true).change(); 
}); 

注:因爲要檢查所有的複選框,改變事件被激發每個複選框..

+0

你可以解釋一下。爲什麼我必須觸發變化? tnx – Ace

+0

,因爲您正在程序中更改複選框的值屬性..瀏覽器將無法跟蹤該元素的更改的事件...因此您必須觸發它手動觸發它 – bipen

+0

我怎樣才能運行警報只有一次? – Ace

1

你必須使用觸發器功能的..

檢查這個jsfiddle。 http://jsfiddle.net/gkCfZ/

$(':checkbox').on('change',function(){ 
alert("checked"); 
}); 

$('button').on('click',function(){ 
    $(':checkbox').prop('checked',true); 
    $(':checkbox').trigger("change"); 
});