2012-04-11 43 views
0

我目前正在每個onblur上執行AJAX查詢存儲,如果this.value不等於'',但對於用戶通過表格標籤而不改變任何東西,這是一個瘋狂的數據庫查詢點擊無(沒錯,我檢查實際的數據庫查詢腳本的變化,但仍然)。在使用Javascript OnBlur執行AJAX存儲之前檢查表單字段中的更改OnFocus?怎麼樣?

下面是我在做什麼目前:

<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

回答

2

使用onchange事件。當用戶選中或單擊該字段時會觸發它,但與onblur不同,只有在值實際發生更改時纔會發生。

+1

我,我是一個白癡:)我根本沒有想過這件事。太複雜了。謝謝你,希望這至少可以幫助別人腦部抽筋。 – 2012-04-11 23:16:19

相關問題