Javascript onChange不适用于自动填充的字段

Javascript onChange不适用于自动填充的字段,javascript,sum,onchange,Javascript,Sum,Onchange,我创建了一个受益人表单,当用户选择受益人时,该表单自动填充指定的百分比。例如,用户可以选择Child 1,并根据他们在另一个表中为Child 1指定的百分比份额,以这种形式自动填充该百分比(函数为_1()。我为每个百分比字段创建了一个单独的onChange脚本来汇总所有百分比,但我认为它不适用于自动填充的字段 function percentSum(){ var arr = document.getElementsByName('beneficiary_share'); var

我创建了一个受益人表单,当用户选择受益人时,该表单自动填充指定的百分比。例如,用户可以选择Child 1,并根据他们在另一个表中为Child 1指定的百分比份额,以这种形式自动填充该百分比(函数为_1()。我为每个百分比字段创建了一个单独的onChange脚本来汇总所有百分比,但我认为它不适用于自动填充的字段

function percentSum(){
    var arr = document.getElementsByName('beneficiary_share');
    var tot=0;
    for(var i=0;i<arr.length;i++){
        if(parseInt(arr[i].value))
            tot += parseInt(arr[i].value);
    }
    document.getElementById('total_percentage').value = tot;
}
函数百分比和(){
var arr=document.getElementsByName(“受益人+股份”);
var-tot=0;

对于(var i=0;i,您必须从更高的DOM元素进行侦听

例如:

$(document).on('change', '#beneficiary_share', percentSum);

当您添加新元素时,将调用percentSum函数。

Plunker/jsfiddle please.onchange不是由代码中修改的值触发的,您必须自己触发它。嘿,Alex,您能扩展一下吗?我对JS不太流利,所以我不太明白您的意思。谢谢!好吧,用这种方式很难说清楚如果你回答了这个问题,你应该发布一个工作的js提琴让我们更好地理解。但是如果我理解正确,你会在用户与页面交互后生成新的HTML标记。如果是这样的话,那么这个新的HTML将不会监听更改,因为Javascript代码已经运行。因此,你会监听任何文档ment(最高的html元素)如果html发生了变化,那么你就在目标html上调用该函数,这是上述函数中的第二个参数。首先…这是jQuery,在问题中没有标记,因此对那些不知道/使用jQuery插件/库的人来说,解释会很有用。嘿,Alex,我想发布一篇文章,但是没有一个字段会自动填充,所以没有什么意义。不过,您所描述的是正确的——上面代码的语法是什么?嘿,Dave,很抱歉,我忽略了您问题中的标记@NewToJS is right。语言是Jquery,您必须通过CDN或下载来要求它。所以…1.$(文档)通过Jquery选择文档。2.“更改”时检测文档的任何更改。3.“受益人共享”是文档发生任何更改时的目标元素。4.percentSum是文档发生任何更改时将执行的函数。5.在percentSum函数中,您可以通过“this”访问“受益人共享”关键字,并从此处更改它。:)
$(document).on('change', '#beneficiary_share', percentSum);