Javascript html:输入值时停止页面刷新

Javascript html:输入值时停止页面刷新,javascript,html,forms,Javascript,Html,Forms,我有一个以html格式创建的表 第一列显示从web服务器提取的数据,第二列允许更改值,然后将新值提交给web服务器。 我还有另一个表,它从web服务器中提取实时数据,需要每20秒刷新一次。 目前,我每20秒刷新一次整个页面 问题是当页面刷新时,如果您已开始在表格单元格中键入值,则刷新后该值将丢失。 我尝试了一些JavaScript来保留cookies中的值,到目前为止,这已经奏效了。但我想知道如果在表格单元格的输入框中选择了光标,是否有一种方法可以简单地阻止刷新 <form id=form

我有一个以html格式创建的表

第一列显示从web服务器提取的数据,第二列允许更改值,然后将新值提交给web服务器。 我还有另一个表,它从web服务器中提取实时数据,需要每20秒刷新一次。 目前,我每20秒刷新一次整个页面

问题是当页面刷新时,如果您已开始在表格单元格中键入值,则刷新后该值将丢失。 我尝试了一些JavaScript来保留cookies中的值,到目前为止,这已经奏效了。但我想知道如果在表格单元格的输入框中选择了光标,是否有一种方法可以简单地阻止刷新

<form id=form1 name=f1 method=post action=/scripts/write-tags autocomplete=on>
        <input type=hidden name=tag1 value=9>
        <input type=hidden name=tag2 value=61>
        <input type=hidden name=tag3 value=44>
        <input type=hidden name=tag4 value=25>
        <input type=hidden name=back value=/savetest.htm>
        <input type=hidden name=page value=1>       
    <table id=data border="1" cellpadding="10" width="700" style="font-family:Arial; font-size:15px";>
    <th>Operation</th><th>Value</th><th>New Value</th>
        <tr>
            <td width="400">Enter the Value of the desired motor RPM</td> 
            <td width="100">[[130]]</td>
            <td width="100"><input type=text size=3 name=data1 value="[[9]]"></td>
        </tr>
        <tr>
            <td width="400">Enter the Value of the Target FOP in feet (TVD)</td> 
            <td width="100">[[61]]</td>
            <td width="100"><input type=text size=3 name=data2 value="[[61]]"></td>
        </tr>
        <tr>
            <td width="400">Enter the Value of the Shutdown Delay in minutes</td> 
            <td width="100">[[256]]</td>
            <td width="100"><input type=text size=3 name=data3 value="[[44]]"></td>
        </tr>
        <tr>
            <td width="400">Enter the Value of the Flow Rate Delay in seconds</td> 
            <td width="100">[[24]]</td>
            <td width="100"><input type=text size=3 name=data4 value="[[25]]"></td>
        </tr>
        <tr>
            <td width="700"><input style="font-family:Arial; font-size:15px;"type=submit name=submit value=&nbsp;OK&nbsp;></td>
        </tr>
    </table>    
</form>

操作值新值
输入所需电机转速的值
[[130]]
以英尺(TVD)为单位输入目标FOP值
[[61]]
以分钟为单位输入关机延迟值
[[256]]
输入流速延迟值(以秒为单位)
[[24]]

我已经更新了一些示例代码。web服务器内置在PLC中。标记和数据名称是指PLC中的值。[[]]中的值是需要刷新的值,输入值用于更改该值。如果这太模糊,我道歉。我非常感谢您的帮助,但出于保密原因,我不能发布太多的代码

不必刷新整个页面,您可以每隔20秒使用AJAX下载数据,这样您就不需要刷新整个页面,这样您的输入就不会丢失:)

每次用户输入后,尝试将计时器重置为20。

如果您添加代码,也许我可以提供更多帮助…

您的刷新是否由
设置间隔调用

如果这是真的,只需这样做:

var interval;

interval = setInterval(refreshPage(), 20000);

$("input").keypress(function(){
    clearInterval(interval);
});

然后在值更改时重新启动interval

请发布一些代码。您如何刷新页面-如果使用settimeout,您可以使用simple to Refresh在输入的键盘上使用cleartimeout。如果您想添加“可编程性”,您没有选择,您必须使用javascript。。。(为了与刷新交互)好的,谢谢。您提供的示例代码是按原样工作还是我需要添加另一个函数来重新启动间隔?要添加间隔,您需要添加另一个时间
interval=setInterval(refreshPage(),20000)