0

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

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

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

<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>

我更新了一些示例代码。Web 服务器内置于 PLC 中。标签和数据名称是指 PLC 中的一个值。[[]]里面的值是需要刷新的值,输入值是用来改变值的。抱歉,如果这太模糊了。感谢您的帮助,但出于保密原因不能发布太多代码。

4

3 回答 3

0

每次用户键入后尝试将计时器重置为 20。
如果您添加代码,也许我可以提供更多帮助...

于 2013-05-21T08:34:14.980 回答
0

你的刷新是由 a 调用的setInterval吗?

如果这是真的,只需执行以下操作:

var interval;

interval = setInterval(refreshPage(), 20000);

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

然后在值更改时重新启动间隔

于 2013-05-21T08:34:23.920 回答
0

您可以每隔 20 秒使用 AJAX 下载数据,而不是刷新整个页面,然后您就不需要刷新整个页面,因此您的输入不会丢失 :)

于 2013-05-21T08:33:55.010 回答