Javascript 如何创建OnChange";总计;来自未知数量文本字段的函数

Javascript 如何创建OnChange";总计;来自未知数量文本字段的函数,javascript,ruby-on-rails,rjs,Javascript,Ruby On Rails,Rjs,我很难理解如何在用Rails 3创建的表中的字段上执行简单的Javascript任务 “我的表”具有用户使用下面的表单添加的特征行(该表单更新数据库并重新加载表) 表中的列数基于以不同形式提交的属性数。无论一行中有多少列,它们后面都有一个合计列。表中的每个单元格都有一个文本字段输入,其ID基于行对象ID和列对象ID 我要做的是为每个单元格创建一个OnChange事件,这样当一个字段值改变时,Total列就会用该行中所有单元格的text_字段输入中的总值更新 我不知道如何将Rails对象传递给Ja

我很难理解如何在用Rails 3创建的表中的字段上执行简单的Javascript任务

“我的表”具有用户使用下面的表单添加的特征行(该表单更新数据库并重新加载表)

表中的列数基于以不同形式提交的属性数。无论一行中有多少列,它们后面都有一个合计列。表中的每个单元格都有一个文本字段输入,其ID基于行对象ID和列对象ID

我要做的是为每个单元格创建一个OnChange事件,这样当一个字段值改变时,Total列就会用该行中所有单元格的text_字段输入中的总值更新

我不知道如何将Rails对象传递给Javascript(这样我就可以循环使用ID),如果在控制器中使用动作,我不知道如何获取DOM元素名称和值,我也不知道如何使用RJS来实现这一点。有人能提供一些帮助吗?谢谢大家!


Sarah

如果使用jQuery,可以在文本框上设置一个类,并监听其中的更改事件

例如:

<input type="text" id="WhateverXXX" class="MyValue" />

<script type="text/javascript">
    $(function(e) {
        $('.MyValue').change(function(e) {
            // update the total
        });
    });
</script>

$(功能(e){
$('.MyValue').change(函数(e){
//更新总数
});
});

在jQuery中,可以很容易地用同一个类遍历所有元素,因此正确设计文档将有助于实现这一点

也许是这样的:

 $('.thing_to_change').live('change', function() { retotal(); });
您的retotal功能可以类似:

 var total = 0;
 $('.thing_to_change').each(function() { total = total + $(this).val() });

可以从rails的“text\u field”助手调用这样的函数吗?例如::onchange=>“[code]”?我能这样给它输入一个变量吗?例如:$('.thing_to_change'+[variable from rails])?多亏了muchRails不推荐很多内置JavaScript方法,比如
link\u to\u函数
,而支持低调的JavaScript。jQuery使得使用一个简单的CSS选择器添加这种行为变得非常容易,如上所示。