0

如果 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; } " />

else 显然是通过 AJAX 提交表单。

我想做的是使用 OnFocus 捕捉用户 OnFocuses 时的内容,然后对照 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 路由。

任何帮助将不胜感激!乙脑

4

1 回答 1

2

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

于 2012-04-11T23:05:49.447 回答