テキストフィールドがフォーカスを取得したときにアクションメソッドを呼び出して、そのフィールドがデータベースから関連付けられているモデルオブジェクトの説明を取得したいとします。MVC 2アプリケーションで繰り返し呼び出されるjQuery関数
私はこのjQueryの機能を持っている:
function getDescription() {
$('.hourInput').focus(function() {
var name = $(this).attr('name');
var url = '<%=Url.Action("GetDescription", "Timesheet") %>'
$.get(url, { name: name }, function (data) {
$('#description').val(data);
});
});
}
そして今のこの単純なテスト・アクションメソッド:
public ActionResult GetDescription(string name)
{
return Content("Testing");
}
それは限りテストテキストの取得など正常に動作しますが、私ならば問題がありますアクションメソッドにブレークポイントを設定すると、テキストボックスでフォーカスを変更したときだけでなく、何度も呼び出されることがわかります...
誰もが何らかの理由がありますか?
これは馬鹿に聞こえるかもしれませんが、Visual Studioに戻ってIEに戻ってフォーカスイベントが再度トリガされる原因になることがありますか? –
異なるブラウザを試してみてください。「focus」のjqueryページには、「フォーカスイベントでイベントの委譲に依存するスクリプトは、ブラウザ間で一貫して動作しません」と記載されています。また、$( '#hourInput') 'を試してください。ここで、hourInputは入力タグのIDです。使用されているブラウザとjQueryのバージョンは何ですか? –
@Matthew:まあ、私もそれについて考えました。だから、まったく馬鹿だとは思わないでしょうし、それは私が推測する答えかもしれませんが、Visual Studioは自動的にブレークポイントに切り替わります。それが問題なのか、実際にいくつかのループがある場合は修正する必要がありますか?また、プログラムを切り替えると何度もフォーカスを受けてしまうことは考えられませんでしたが、少なくとも同じページ内でフォーカスを切り替える必要があると思いました。 – Anders