Javascript 如何使这些值不被重写到HTML中?
我有一小段代码,它将一些值写入表单中的文本区域。每当我点击一个按钮时,它都会写。但是,如果我多次点击按钮,他们会一遍又一遍地写。我需要能够多次单击按钮(例如,如果用户更改了一个值),并让我正在编写的值只是刷新而不是重复。这是我所拥有的Javascript 如何使这些值不被重写到HTML中?,javascript,html,arrays,Javascript,Html,Arrays,我有一小段代码,它将一些值写入表单中的文本区域。每当我点击一个按钮时,它都会写。但是,如果我多次点击按钮,他们会一遍又一遍地写。我需要能够多次单击按钮(例如,如果用户更改了一个值),并让我正在编写的值只是刷新而不是重复。这是我所拥有的 var endwallPanelLengths = [totalHeightInches]; var i = 0; while (endwallPanelLengths[i] > eaveInches) { endw
var endwallPanelLengths = [totalHeightInches];
var i = 0;
while (endwallPanelLengths[i] > eaveInches)
{
endwallPanelLengths.push(endwallPanelLengths[i] - peakHeightDecrease);
document.getElementById("test83").value += "4 - " + endwallPanelLengths[i] + "\n";
i++;
}
当我第一次单击按钮时,值是正确的,但每次单击后都会再次写入?在这一行:
document.getElementById("test83").value += "4 - " + endwallPanelLengths[i] + "\n";
您正在向test83
添加一个值。大概(因为我看不到你的html!!!)你只需要从+=
中删除+
编辑:如果您想在循环中附加所有值,而不附加其他值,只需在进入循环之前清除该值,并保留+=
document.getElementById("test83").value = "";
var endwallPanelLengths = [totalHeightInches];
......
在这方面:
document.getElementById("test83").value += "4 - " + endwallPanelLengths[i] + "\n";
您正在向test83
添加一个值。大概(因为我看不到你的html!!!)你只需要从+=
中删除+
编辑:如果您想在循环中附加所有值,而不附加其他值,只需在进入循环之前清除该值,并保留+=
document.getElementById("test83").value = "";
var endwallPanelLengths = [totalHeightInches];
......
试试这个:
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++;
}
我假设每次单击按钮时都会执行所有代码,对吗?试试以下方法:
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++;
}
我假设每次单击按钮时所有代码都会执行,我说的对吗?您需要实现一个clickEventhandler来检查您的文本是否存在。…您需要实现一个clickEventhandler来检查您的文本是否存在。…我想您希望在用户更改值时执行整个迭代。然后,您只需要在循环之前将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++;
}
我制定了一个计划。希望这就是您所追求的。我认为您希望在用户更改值时完成整个迭代。然后,您只需要在循环之前将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++;
}
我制定了一个计划。希望这就是您所追求的。我认为OP希望在用户每次更改值时执行整个while循环。将“+=”更改为“=”将只包含textarea中的最后一个值。啊,这似乎是合理的。因为他们没有把他们的html!我会提出一个替代方案。我认为OP希望在用户每次更改值时执行整个while循环。将“+=”更改为“=”将只包含textarea中的最后一个值。啊,这似乎是合理的。因为他们没有把他们的html!我会换一个答案。我不知道我的答案和你的一样。很抱歉,还是对你的答案投了赞成票。我不知道我的答案和你的一样。对不起,我还是对你的答案投了赞成票。