计算标签和文本框的百分比

时间:2017-08-09 10:07:25

标签: javascript jquery

我输入了一些输入字段,用户可以在第一次访问特定页面时输入值,这些值将保存到数据库中,每次在文本框中输入值时都会调用该函数它将显示总数中5个值的百分比。

当用户离开表单并返回时,会显示标签而不是文本框。下面的代码是否适合这样一个任务,它会动态选择正确的参数“.text”或“.val”来获取值,因为下次用户返回时标签会被填充?我想自动执行此过程,而不是自己附加每个标签值。

我已经标记了我遇到麻烦的地方

function calcABC(e) {

//Declare array of numeric selectors
var arr = ["a", "b", "c", "d", "e"];
var x = "";
var y = "";
if (e == "label") {
    x = "lbl_"
    y = ".text()";
}
else {
    x = "txt_"
    y = ".val()";
}

//HAVING TROUBLE HERE VVVVVVV
alert(eval("$('#' + x + arr[0]) + y)"));
alert("hello");

//loop through the array and get the value for that array index
var before = 0;
for (var i in arr)
{
    before += isNaN(parseInt($("#"+ x + arr[i]).val())) ? 0 : parseInt($("#" + arr[i]).val())
}

//Apply the total to the global variable
ABCTotal = before;

//Loop through the numbers and get the precentage value and append the value to the relevant area
for (var j in arr)
{
    console.log($("#" + x + arr[i]).val())
    var val = isNaN(parseInt($("#" + x + arr[j]).val())) ? 0 : parseInt($("#" + arr[j]).val());
    $("#txt" + arr[j] + "Prec > small").text(calcPrec(val).toFixed(2) + "%");
}

//Set the total field
$("#txt_ABCTotal").text(ABCTotal);
}
// Nice function to quickly calculate the precent value from a total
function calcPrec(val)
{
    return (val * 100) / ABCTotal;
}

我希望这是有道理的!无论如何都有任何帮助!

1 个答案:

答案 0 :(得分:0)

为避免使用eval,强烈建议最好使用y =' text'或者y =' val'然后使用数组表示法调用该函数,如:

$('#' + x + arr[0])[y]()