我有一个订单表单,用户可以使用ajax动态添加或删除票证(类似于railscast#197,它是嵌套表单)。每个故障单显示一个“价格”类的票价(ruby实例变量 - @ event.ticket_price)。
我在其他地方找到了一个代码片段,我将这些元素与“价格”类相加,并将结果显示在ID为“total_price”的div中
$('#total_price').html(function() {
var a = 0;
$(".price").each(function() {
a += parseInt($(this).html());
});
return a;
});
这会在单击添加票证链接时生成总价格,但是当页面最初加载时它不显示任何内容(它应该具有默认情况下一个票证的价格)。同样,当票证被删除时,我需要一个功能来从总票数中减去该票证的价格。 最后我希望价格是美元,但是当我这样做时会得到一个NaN,我想我需要某种类型的正则表达式?
对于jquery更新的rails新手,非常感谢对此有所帮助,谢谢!
删除票证功能
function remove_fields(link) {
$(link).prev("input[type=hidden]").val("1");
$(link).closest(".fields").hide();
}
添加票证功能
function add_fields(link, association, content) {
var new_id = new Date().getTime();
var regexp = new RegExp("new_" + association, "g")
$(link).parent().before(content.replace(regexp, new_id));
}
答案 0 :(得分:1)
对于第一个问题,我不确定其余代码的结构,但价格可能不会出现,具体取决于执行javascript的时间。我建议创建一个名为'displayPrice'的函数,并将代码粘贴到那里。单击按钮时调用该函数,并在主体完全加载时调用它:
<body onload="displayPrice()">
要删除票证,您可以使用“价格”类删除该对象,然后再次调用“displayPrice”函数。
对于美元符号,将函数设置为
返回return '$' + a
Javascript应该为您处理类型转换。