2011-07-01 1 views
3

私はGoogleとここではスタックオーバーフローについてしばらく掘り下げており、これに関連するものは何も見つかりません。2つの入力が含まれているとjQueryブラーが発砲し続ける

私は、ぼかしでサーバーにjQuery AJAX関数を呼び出すとき、複数の入力テキストフィールドを持っています。それは美しく、ほとんど動作します。

問題は、1つのテキスト入力にフォーカスを当てて、別のテキスト入力をクリックしてフォーカスを合わせる場合です。ブラーイベントは、サーバーとアラートへのAJAXコールで解消され続けます。

どのように落ち着いて落ち着かせることができますか?おそらく私はそれを修正するかもしれないしていない非常に単純なものがあります。

ここにコードがあります({{}}タグと{%%}タグは無視されます)、これはdjangoテンプレートです。

入力:

<td class="tracking-text">CK Req:</td><td class="tracking-td"><input class="tracking-input" type="text" value="{{pr.checkreq|default_if_none:"&nbsp"}}" size="10"></td> 
    <td class="tracking-text">LPD:</td><td class="tracking-td"><input class="tracking-input" type="text" value="{{pr.lpd|default_if_none:""}}" size="10"></td> 
    <td class="tracking-text">PR#</td><td class="tracking-td"><input class="tracking-input" type="text" value="{{pr.prnumber|default_if_none:""}}" size="10"></td> 
    <td class="tracking-text">DATE:</td><td class="tracking-td"><input class="tracking-input" type="text" value="{{pr.prdate|default_if_none:""}}" size="10"></td> 

のjQuery:

 $('.tracking-input').blur(function(){ 

      $.post("{% url buy.views.update_purchase_ajax %}", 
       {pr_pk: $('span#pr_pk').html()}, 
       function(data){ 
        alert(data.message); 
       }, 'json'); 


     }); 

任意のアイデアをいただければ幸いです。

答えて

5

alertは、もう一度フォーカスを失い、別のAJAXリクエストを発しています。

入力が空でない場合は、AJAXリクエストを送信するだけで問題を解決できますか?

これはalertが本当に必要なのですか、それともデバッグ用ですか?これは、デバッグにalertを使用しない理由の最も重要な例です。 console.logを使用してください。

+0

アラートはデバッグ用です。ページの残りの部分に1つの入力をクリックすると、問題は発生しないでしょうか? – Fernker

+1

さて、それを取り除くだけでナットを止めるべきです。たぶん 'console.log'を試してみて、機能には影響しません。 –

+0

私はそれを削除するとそれを停止するようです。だから私の問題を解決する(ありがとう!)。私はまだ警告がどのように入力がぼやけていると思うのか、それから焦点が合ったのか、そしてぼやけたのかを100%確信していません。しかし、それでも動作します。 – Fernker

3

問題はalert()です。

表示されているときは、入力から離れてフォーカスが戻り、繰り返し表示されます。

関連する問題