如何使这些值不被重写为HTML?

时间:2013-06-03 20:26:06

标签: javascript html arrays

我有一小段代码将一些值写入表单内的textarea。每当我点击一个按钮时写。但是,如果我不止一次点击按钮,他们会一遍又一遍地写。我需要能够多次单击该按钮(例如,如果用户更改了值)并且我正在编写的值只是刷新而不是重复。这就是我的......

var endwallPanelLengths = [totalHeightInches];
    var i = 0;
    while (endwallPanelLengths[i] > eaveInches) 
    {
        endwallPanelLengths.push(endwallPanelLengths[i] - peakHeightDecrease);
        document.getElementById("test83").value += "4 - " + endwallPanelLengths[i] + "\n";
        i++;
    } 

当我第一次点击按钮时,值是正确的,但是每次单击它后它们会再次写入?

4 个答案:

答案 0 :(得分:2)

在这一行:

    document.getElementById("test83").value += "4 - " + endwallPanelLengths[i] + "\n";

您要将值附加到test83。大概(因为我看不到你的HTML !!!)你只需要从+删除+=

编辑:如果您想要在循环中追加所有值,而不是其他任何内容,只需在进入循环之前清除该值并离开+=

document.getElementById("test83").value = "";
var endwallPanelLengths = [totalHeightInches];
......

答案 1 :(得分:1)

试试这个:

var endwallPanelLengths = [totalHeightInches];
var i = 0;
document.getElementById("test83").value = '';
while (endwallPanelLengths[i] > eaveInches) 
{
    endwallPanelLengths.push(endwallPanelLengths[i] - peakHeightDecrease);
    document.getElementById("test83").value += "4 - " + endwallPanelLengths[i] + "\n";
    i++;
} 

我假设每次点击按钮都会执行所有代码,我是对的吗?

答案 2 :(得分:1)

我认为您希望在用户更改值时执行整个迭代。然后你只需要在循环之前将textarea的值重置为空。像这样:

var endwallPanelLengths = [totalHeightInches];
var i = 0;
document.getElementById("test83").value = '';  //Reset the value
while (endwallPanelLengths[i] > eaveInches) {
    endwallPanelLengths.push(endwallPanelLengths[i] - peakHeightDecrease);
    document.getElementById("test83").value += "4 - " + endwallPanelLengths[i] + "\n";
    i++;
}

我找到了demo page。希望这就是你所追求的。

答案 3 :(得分:0)

你需要实现一个clickEventhandler来检查你的文本是否存在.....