我有一小段代码将一些值写入表单内的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++;
}
当我第一次点击按钮时,值是正确的,但是每次单击它后它们会再次写入?
答案 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来检查你的文本是否存在.....