Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使这些值不被重写到HTML中?_Javascript_Html_Arrays - Fatal编程技术网

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!我会换一个答案。我不知道我的答案和你的一样。很抱歉,还是对你的答案投了赞成票。我不知道我的答案和你的一样。对不起,我还是对你的答案投了赞成票。