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

それ以外の場合は、明らかに 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 に戻そうとした場合、明らかにそれを動的な値と比較することはできません。値が値 y に変更されたのではなく、値が依然として値 x であると考えているため、更新します。したがって、なぜ私はj​​avascriptルートを理解しようとしています。

どんな助けでも事前に大歓迎です!日

4

1 に答える 1

2

onchangeイベントをご利用ください。ユーザーがフィールドからタブまたはクリックしたときにトリガーされますがonblur、値が実際に変更された場合にのみ発生するのとは異なります。

于 2012-04-11T23:05:49.447 に答える