Javascript 操作textarea中的值时出错
我是来自马其顿的波比,我偶然发现了一个关于我的问题 我的JavaScript/jQuery代码 我想在我的文本区域中输入一些值,然后根据特定的公式 需要计算这些值,并将结果显示为警报 这是我的密码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
//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