0

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

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

4 回答 4

2

在这一行:

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

您正在将值附加到test83. 大概(因为我看不到你的 html !!!)你只需+要从+=.

编辑:如果您想附加循环中的所有值,仅在进入循环之前清除该值并离开+=

document.getElementById("test83").value = "";
var endwallPanelLengths = [totalHeightInches];
......
于 2013-06-03T20:30:42.890 回答
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++;
} 

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

于 2013-06-03T20:31:39.677 回答
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++;
}

我已经制定了一个演示页面。希望这就是你所追求的。

于 2013-06-04T01:36:52.150 回答
0

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

于 2013-06-03T20:32:22.473 回答