在使用jQuery回发之前从动态表单字段获取值

时间:2015-01-19 21:57:02

标签: jquery dynamic sum

我有一个表单设置,动态字段只有在用户需要时才会添加。

我需要能够在jquery中回发之前验证字段(如果它们在那里)。字段是整数,我真正想要做的是添加动态字段的总和,以确保它们大于x数字。

但是就我可以解决的问题而言,我无法获得该领域的价值,因为它还不在DOM中。

我创建了JSFiddle来证明问题。我想在onblur事件中添加值,但不幸的是,它不能点击主提交按钮。

以下是一些代码

$(document).on('blur', '.rent-percent', function () {
        var id = this.id;
        console.log(this);
        var value = $('#' + id).val()
        $('#total').append(value * count);

    });

2 个答案:

答案 0 :(得分:0)

试试这个,确保你没有使用过时的jQuery版本:

$(document).on('blur', '.rent-percent', function () {
    if(!$.isNumeric($(this).val())){
        $(this).val('');
        return alert('Not a Number!');
    }
    var c = 0;
    $('.rent-percent').each(function(){
          c += parseInt($(this).val());                       
    });
    $('#total').html('<h3>Total</h3>'+c);
});

JSFiddle

答案 1 :(得分:0)

您遇到的部分问题是您生成的ID值中包含方括号字符。 HTML4规范仅允许使用字母,数字,连字符和下划线。根据我的经验,jQuery存在与不符合的ID有问题。尝试修复id值,看看是否允许您查看字段的值。它们属于DOM,因为它们是页面的一部分。