Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据textarea中的行计算值/价格_Javascript_Jquery_Html_Textarea - Fatal编程技术网

Javascript 根据textarea中的行计算值/价格

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

我试图计算一个价格,这取决于你在一个文本区域中使用了多少行。这就是我到目前为止所想到的。唯一的问题是它不会计算,我想我已经看得太多了

让我解释一下,首先是som文本广告。 至少2行有固定费用,然后每行增加10行,最多10行

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);
});