Javascript 操作textarea中的值时出错

Javascript 操作textarea中的值时出错,javascript,jquery,html,Javascript,Jquery,Html,我是来自马其顿的波比,我偶然发现了一个关于我的问题 我的JavaScript/jQuery代码 我想在我的文本区域中输入一些值,然后根据特定的公式 需要计算这些值,并将结果显示为警报 这是我的密码 //First this is my formula function calc(data) { ret = []; for(var i = 0; i < data.length; i++) { ret[i] = (3.5 + data[i] + 0.5 * (data[i] - 3

我是来自马其顿的波比,我偶然发现了一个关于我的问题 我的JavaScript/jQuery代码

我想在我的文本区域中输入一些值,然后根据特定的公式 需要计算这些值,并将结果显示为警报

这是我的密码

//First this is my formula
function calc(data) { 
  ret = []; 

for(var i = 0; i < data.length; i++) { 
ret[i] = (3.5 + data[i] + 0.5 * (data[i] - 3));
 } 
   return ret; 
 }

//Now, taking values from the text area using valHooks
$.valHooks.textarea = {
get: function(elem) {
return elem.value.replace( /\r?\n/g, "\r\n" );
  }
};

$('button').click(function() {

//in this step the values are successfully taken from the textarea 
    var  sample = {};
sample.data = $('textarea').val();
    //alert(sample.data);  <-- this works fine


var result = {};
    result.data = calc(sample.data);   //but here seems to be the problem
    alert(result.data);                //the alert shows some gibberish values
//首先这是我的公式
函数计算(数据){
ret=[];
对于(var i=0;i
您必须检查parseFloat编号是否有效

        $(function () {


function calc(data) { 
      ret = []; 
    var res=data.split(',');
 for(var i = 0; i < res.length; i++) { 
     var parseNumber=parseFloat(res[i]);
    ret[i] =  (3.5 + parseNumber + 0.5 * (parseNumber - 3)).toFixed(2);
  } 
  return ret; 
}

//Taking values from the text area using valHooks
$.valHooks.textarea = {
    get: function(elem) {
    return elem.value.replace( /\r?\n/g, "\r\n" );
}
};

$('button').click(function() {

    var result = {};
        result.data = calc(sample.data);   
        alert(result.data); 

});
});
$(函数(){
函数计算(数据){
ret=[];
var res=data.split(',');
对于(var i=0;i
按照我所说的做以下三个更改..并享受编码..)

函数计算(数据){
ret=[];
对于(var i=0;i
好吧,在你的小提琴中,你缺少jQuery(你需要包括它)。你缺少
})
你的
$(函数(){…
数据。在
calc
函数中,length
是您传入的字符串的长度。您希望在那里有一个数组吗?您在哪里将输入字符串拆分为一个数字数组?尝试在您的按钮上添加
type=“button”
属性谢谢,先生,这非常有用!
 function calc(data) { 
     ret = []; 
    for(var i = 0; i < data.length; i++) { 
     data[i] = parseFloat(data[i]); // here u want to parse ur string to float
    ret[i] = (3.5 + data[i] + 0.5 * (data[i] - 3));
    ret[i] = Math.round(ret[i] * 100) / 100; // this code for get rounded answer like exactly u needed 
     } 
       return ret; 
     }

$.valHooks.textarea = {
get: function(elem) {
return elem.value.replace( /\r?\n/g, "\r\n" );
  }
};

$('button').click(function() {

    var  sample = {};
sample.data = $('textarea').val();
sample.data = sample.data.split(","); //textarea value transferring to array
    //alert(sample.data);


var result = {};
    result.data = calc(sample.data);   
    alert(result.data);   
} // and dont miss this curly bracket :D