在使用Javascript OnBlur OnFocus执行AJAX存储之前检查表单字段的更改?如何

Checking change in form field before executing AJAX store with Javascript OnBlur OnFocus? How?

本文关键字:字段 表单 检查表 检查 如何 Javascript OnBlur OnFocus 存储 AJAX 执行      更新时间:2023-09-26

如果this.value不等于'',我目前正在每个onblur上执行AJAX查询存储,但对于通过表单跳转而不更改任何内容的用户,这是无所事事的数据库查询命中量(是的,我检查实际数据库查询脚本的更改,但仍然如此)。

这是我目前正在做的事情:

<input type="text" name="EUName" id="EUName" value="[whateverdynamicvalue]"
class="contentextformtxt" onblur="if (this.value == '') 
{this.value = '[whateverdynamicvalue]';} else { UpdateEUData();return false; } " />

其他人显然通过 AJAX 提交表单。

我想做的是使用OnFocus来捕获用户OnFocus时的内容,然后根据this.value OnBlur进行检查,看看是否有任何变化。 我不确定我是否走在正确的轨道上(不是很擅长javascript),但这是我到目前为止所拥有的。

<input type="text" name="EUAddress1" id="EUAddress1" value=" [whateverdynamicvalue] "
class="contentextformtxtlarge" onblur="if (this.value == '' || this.value == originalfvalue)
{this.value = ' [whateverdynamicvalue] ';} else { UpdateEUData();return false; } " 
onfocus="Var originalfvalue = this.value" />

我不确定这是否是最佳实践,但无论哪种方式,它都不起作用。 关于如何修复的任何建议都会很棒! 最重要的是,我只是想找出一种减少服务器流量的方法。 我最初只是将其与动态值进行比较,但问题是如果有人将值从值 x 更改为值 y,然后尝试将其更改回值 x,显然将其与动态值进行比较将不允许它更新,因为它仍然认为值是值 x, 并不是说它已更改为值 Y。 因此,为什么我试图找出javascript路由。

任何帮助将提前不胜感激!流行性乙型脑炎

使用 onchange 事件。当用户按 Tab 键或单击字段外时会触发它,但与onblur不同的是,它仅在实际更改值时才会发生。