2017-07-09 22 views
0

我想要一個函數添加所選複選框和單選按鈕的值。我創建了一個函數,可以添加複選框的值和單選按鈕的功能,但無法將兩者合併爲一個工作函數。我想我的問題是與具有相關的無線電和複選框元素.click()將相同的事件處理程序添加到單選按鈕和複選框

我的代碼可以在這裏看到: https://jsfiddle.net/Buleria28/nz43u7x8/2/

的HTML是:

<input type="checkbox" value="1" />test 1<br/> 
<input type="checkbox" value="2" />test 2<br/> 
<input type="checkbox" value="3" />test 3<br/> 

<input type="radio" name="test" value="1" />test 4 
<input type="radio" name="test" value="2" />test 5 
<div id='sum'></div> 

jQuery的是:

jQuery(document).ready(function($) { 
var sum = 0; 

$("input:checkbox"),$("input:radio").click(function() { 
    sum = 0; 
    $("input:checkbox:checked").each(function(idx, elm) { 
     sum += parseInt(elm.value, 10); 
    }); 

    sum = 0; 
    $("input:radio:checked").each(function(idx, elm) { 
     sum += parseInt(elm.value, 10); 
    }); 
    $('#sum').html(sum); 
    }); 
}); 

回答

1

在這裏,你去與解決方案https://jsfiddle.net/nz43u7x8/5/

jQuery(document).ready(function($) { 
    var sum = 0; 

    $("input:checkbox, input:radio").click(function() { 
     sum = 0; 
     $("input:checkbox:checked").each(function(idx, elm) { 
      sum += parseInt(elm.value, 10); 
     }); 

     $("input:radio:checked").each(function(idx, elm) { 
      sum += parseInt(elm.value, 10); 
     }); 
     $('#sum').html(sum); 
    }); 
}); 
:除了通過使用jQuery的構造函數的第一個參數一個逗號,類似CSS選擇器結合實際選擇
2

您實際上正在使用comma operator並且僅將事件處理程序添加到seco nd jQuery對象。

$("input:checkbox, input:radio").click(function() { 
    … 
});