如何将事件与通过jquery中的ajax生成的动态值绑定

时间:2013-07-30 19:24:04

标签: php html jquery

我遇到动态生成复选框的问题。我试过这样的:

<select name="model" id="model" class="" aria-invalid="false">
<option value="1">iPhone 5</option>
<option value="2">Iphone 4S</option>
<option value="3">Iphone 4</option>
</select>

基于上面选择的值,这些复选框将通过ajax生成。这是通过ajax生成的元素:

<p><input type="checkbox" id="screenguard" name="screenguard" value="20" />Cover</p>
<p><input type="checkbox" id="Charger" name="Charger" value="30" />Charger</p>
<p><input type="checkbox" id="hdphdm" name="hdphdm" value="10" />Headphone</p>

<p>
 Calculated Price: <input type="text" name="price" id="price" />
</p>

根据复选框的选择,我需要计算另一个输入框(价格)的值。这是我的Jquery函数:

$(document).ready(function () {
var $inputs = $('input[type="checkbox"]')
    $inputs.on('change', function () {
        var sum = 0;
        $inputs.each(function() {
        // iterate and add it to sum only if checked
           if(this.checked)
               sum += parseInt(this.value);
        });
        $("#price").val(sum);

    });
});

但我不知道为什么它不起作用。请给我任何建议,我做错了什么。

2 个答案:

答案 0 :(得分:5)

你需要像这样使用event delegatio -

$(document.body).on('change','input[type="checkbox"]', function () {

答案 1 :(得分:-1)

每次单击复选框“sum”都会重置为零。将其移到“更改”事件之外。