我目前正在每个onblur上执行AJAX查询存储,如果this.value不等于'',但是对于用户通过表单进行选项而不更改任何内容,这是一个疯狂的数据库查询命中数量(并且是,我检查实际数据库查询脚本的更改,但仍然。)
这是我目前正在做的事情:
<input type="text" name="EUName" id="EUName" value="[whateverdynamicvalue]"
class="contentextformtxt" onblur="if (this.value == '')
{this.value = '[whateverdynamicvalue]';} else { UpdateEUData();return false; } " />
其他人显然是通过AJAX提交表单。
我想做的是使用OnFocus来捕获User 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,显然将其与动态值进行比较将不允许它更新,因为它仍然认为值IS值x,而不是它已被更改为值y。因此,为什么我要弄清楚javascript路线。
任何帮助都会提前得到很多赞赏! JE
答案 0 :(得分:2)
使用onchange
事件。当用户标记或单击字段时会触发它,但与onblur
不同的是,只有在实际更改了值时才会触发它。