Javascript 根据textarea中的行计算值/价格
我试图计算一个价格,这取决于你在一个文本区域中使用了多少行。这就是我到目前为止所想到的。唯一的问题是它不会计算,我想我已经看得太多了 让我解释一下,首先是som文本广告。 至少2行有固定费用,然后每行增加10行,最多10行Javascript 根据textarea中的行计算值/价格,javascript,jquery,html,textarea,Javascript,Jquery,Html,Textarea,我试图计算一个价格,这取决于你在一个文本区域中使用了多少行。这就是我到目前为止所想到的。唯一的问题是它不会计算,我想我已经看得太多了 让我解释一下,首先是som文本广告。 至少2行有固定费用,然后每行增加10行,最多10行 var flatFee='70.00'; var perRow='10.00'; 函数行数(面积,最大长度){ //var区域=document.getElementById(“textarea-1”) //修剪尾部返回字符(如果存在) var text=area.valu
var flatFee='70.00';
var perRow='10.00';
函数行数(面积,最大长度){
//var区域=document.getElementById(“textarea-1”)
//修剪尾部返回字符(如果存在)
var text=area.value.replace(/\s+$/g,“”);
var split=text.split(“\n”);
如果(split.length>maxlength){
split=split.slice(0,最大长度);
area.value=split.join('\n');
警报(“您不能输入超过“+maxlength.toString()+”行”);
}
返回false;
}
var div=$('span.rowCount');
jQuery('textarea#textarea-1')。on('input',function($){
var count=行计数(此.value);
div.html(count.rows);
/*var additionalFees=perRow*count.rows*/
如果(count.rows>2){
var额外费用=perRow*(count.rows-2);
}
var total=parseFloat(固定费用)+parseFloat(额外费用);
$('span.total').html(parseFloat(total.toString()).toFixed(2));
/*var-total=$('span.total')*/
控制台日志(总计);
});代码>
您有0行。总共0行
HTML
HTML
稍微修改一下你的函数。现在工作
var flatFee='70.00';
var perRow='10.00';
函数行数(面积,最大长度){
//var区域=document.getElementById(“textarea-1”)
//修剪尾部返回字符(如果存在)
var text=area.replace(/\s+$/g,“”);
var split=text.split(“\n”);
如果(split.length>maxlength){
split=split.slice(0,最大长度);
area.value=split.join('\n');
警报(“您不能输入超过“+maxlength.toString()+”行”);
}
返回{rows:split.length};
}
var div=$('span.rowCount');
jQuery('textarea#textarea-1')。on('input',function($){
var count=行计数(此.value);
div.html(count.rows);
/*var additionalFees=perRow*count.rows*/
var额外费用=0;
如果(count.rows>2){
额外费用=perRow*(count.rows-2);
}
var total=parseFloat(固定费用)+parseFloat(额外费用);
//$('span.total').html(total.toString().toFixed(2));
/*var-total=$('span.total')*/
控制台日志(总计);
});代码>
您有0行。总共0行
稍微修改了您的函数。现在工作
var flatFee='70.00';
var perRow='10.00';
函数行数(面积,最大长度){
//var区域=document.getElementById(“textarea-1”)
//修剪尾部返回字符(如果存在)
var text=area.replace(/\s+$/g,“”);
var split=text.split(“\n”);
如果(split.length>maxlength){
split=split.slice(0,最大长度);
area.value=split.join('\n');
警报(“您不能输入超过“+maxlength.toString()+”行”);
}
返回{rows:split.length};
}
var div=$('span.rowCount');
jQuery('textarea#textarea-1')。on('input',function($){
var count=行计数(此.value);
div.html(count.rows);
/*var additionalFees=perRow*count.rows*/
var额外费用=0;
如果(count.rows>2){
额外费用=perRow*(count.rows-2);
}
var total=parseFloat(固定费用)+parseFloat(额外费用);
//$('span.total').html(total.toString().toFixed(2));
/*var-total=$('span.total')*/
控制台日志(总计);
});代码>
您有0行。总共0行
您使用if(count.rows>2),但rowCount仅返回false您使用if(count.rows>2),但rowCount仅返回false这非常有效。但我想在32个字符后拆分,而不是回车。假设我在一行中键入100个字符,然后每32个字符将其拆分,现在我应该得到一个包含行的数组,然后进行计数。通过这样做,无论文本区域有多大,都是应该的???这真的很好用。但我想在32个字符后拆分,而不是回车。假设我在一行中键入100个字符,然后每32个字符将其拆分,现在我应该得到一个包含行的数组,然后进行计数。通过这样做是不应该有多大的文本区域???
Flat Rate / First 2 rows: 70<BR>
Additional Rows: 10 per row
<div id="compute" contenteditable="true" style="border:1px solid #ccc;">
</div>
Total Price: <font id="total">0</font>
<BR>
<font id="msg"></font>
var flatFee = 70;
var perRow = 10;
$('#compute').keypress(function(){
$("#msg").html('Press enter to compute');
var count = $(this).find('div').length;
var total = flatFee;
if(count > 1)
{
total = flatFee + (count * 10) - 10;
}
$("#total").html(total);
});