我有一点问题这是小提琴:http://jsfiddle.net/LK7Tj/3/
var result = parseFloat($(".val1").val()) + parseFloat($(".val2").val());
现在第一行输入的脚本工作,我必须为其他元素改变什么?我想我可以使用(这个),但我不知道如何。有谁可以帮助我?
答案 0 :(得分:1)
我已经开发了一个插件以适应这种计算,如果它可以帮助你试试这个
动态表单的示例用法可以在这里找到
http://prototype.xsanisty.com/calx/sample/calx_with_dynamic_form.html
我将以下代码上传到此地址:http://prototype.xsanisty.com/calx/sample/sample.html
<form id="form">
<a id="addElement" class="addElement" href="#">Add element</a>
<div class="position" data-id="1">
<label for="title">val1</label>
<input type="text" name="val1[]" class="val1" id="A1">
<label for="title">val2</label>
<input type="text" name="val1[]" class="val2" id="B1">
<span id="C1" class="val3" data-formula="$A1+$B1"></span>
</div>
<p id="all" data-formula="$C1"></p>
</form>
这里是js部分
<script>
$form = $('#form').calx();
$('#addElement').on('click', function () {
var lastElem = $('.position').last();
var newElem = lastElem.clone();
var data = lastElem.data("id");
data = data + 1;
newElem.attr('data-id',data);
newElem.find('.val1').attr('id','A'+data).val('');
newElem.find('.val2').attr('id','B'+data).val('');
newElem.find('.val3').attr('id','C'+data).attr('data-formula','$A'+data+'+$B'+data);
$('#all').attr('data-formula','SUM($C1,$C'+data+')');
newElem.insertAfter(lastElem);
$form.calx('refresh');
});
</script>
答案 1 :(得分:0)
你可以做到
$('body').on("change",'.val1, .val2',function (event) {
var val1,val2;
if($(this).is(".val1")){
val1=$(this);
val2=val1.parent().children(".val2");
}
else{
val2=$(this);
val1=val2.parent().children(".val1");
}
var result = parseFloat(val1.val()) + parseFloat(val2.val());
result = isNaN(result) ? 0 : result;
$(this).parent().children('span').text(result.toFixed(2));
totalQuantity += result;
$('p').text(totalQuantity);
});
答案 2 :(得分:0)
你可以试试这个吗
$('form').on('change','.val1, .val2',function (event) {
var result = parseFloat($(this).next("span").text());
result = isNaN(result) ? 0 : result;
result = parseFloat($(this).val()) + result;
$(this).nextAll('span').first().text(result.toFixed(2));
totalQuantity += parseFloat($(this).val());
$('p').text(totalQuantity);
});
如果你只是为了这个目的使用totalQuantity变量那么你应该骑它并使用这样
totalQuantity = parseFloat($("#all").text());
totalQuantity = isNaN(totalQuantity) ? 0 : totalQuantity;