JQuery ajaxを使用してフォームを送信した後、ボタンをクリックする際に問題が発生します。上記のボタンは、実際にサードパーティ製のツールによってDOMに入れ、ページ上で、我々はボタンを非表示にして、模倣jQueryのボタンを生成することによって、それらを引き継ぐレンダリングされIE上でajaxフォームを送信した後にJQueryボタンがクリックされない
<div>
<!-- normal HTML buttons that are overridden by JQuery for styling purposes -->
<!-- Here, on render, the HTML button is hidden and a similar JQuery button is shown on the DOM -->
</div>
<div>
<!--- Stuff generated by a third-party tool -->
</div>
<div>
<!--- Our form loaded using JQuery -->
</div>
:ここに私のHTMLは次のようになります元のボタンの動作。したがって、基本的に、ユーザーはフォーム内のサードパーティのものを記入し、フォームに記入してからJQueryボタンをクリックします。まず、フォームをサーバーに送信し、オリジナルのボタンをクリックしてサードパーティのツールそれ自身のものを提出することができます。
clickoriginalbutton = function(passedButton) {
$(passedButton).click();
},
//save our data
submitourform = function(buttonreference) {
$('#our_form').ajaxForm(options);
$('*').button('disable');
$('#our_form').ajaxSubmit({
iframe: true,
dataType: 'json',
success: function(data){
if (data.status == 'success') {
clickoriginalbutton (getOrigButton(buttonreference));
};
}
});
}
ご覧のとおり、オリジナルのボタンは、フォームの保存が成功するとクリックされます。 FFでボタンのクリックは正常に機能しますが、IEでは失敗します。フォームが送信され、成功したことがわかりますが、IEは元のボタンのクリックを起動しません。私はボタンへのすべての参照が正常であることを確認しました。私はここのフォーラムを検索し、ライブ/デリゲートなどを見つけましたが、私のボタンは常にそこにあるので、彼らが私のために働くかどうかはわかりません。 ajax - 実際には何も経由してレンダリングされません。最初の負荷の後にajax。だから、なぜそれがFFで動作している間にボタンのクリックがIEで動作していないのか分かりません。なぜこのようなことが起きているのか。
おかげで、 ニティン
clickoriginalbuttonの内容は何ですか? jQueryには、トリガーメソッドがあります。このメソッドを使用すると、オブジェクトの添付ハンドラーを呼び出すイベントを発生させることができます。ハンドラが起動されていない場合、ハンドラがイベントにアタッチされないため、ハンドラが何とかクリアされているかどうかを調べる必要があります。 – enamrik
clickoriginalボタンの内容は、postとまったく同じです。渡されたボタンのclick()関数を呼び出すだけです。 clickoriginalbuttonは、ajaxサブミットがない場所でも呼び出され、これらのシナリオではIE上でも問題なく動作します。フォームを送信し、ボタンがクリックされないというclickorignalボタンを呼び出すだけです。私がsubmitourform関数からajaxSubmit呼び出しを削除すると、ボタンはうまくクリックされます。また、私のポストでは、フォームプラグインの使用法が示されていますが、私は同じ結果を持つJQuery .ajaxも試しました。ボタンはIEではクリックしないだけです。 – legendofawesomeness
IEのように見えますが、JQueryはクリックイベントを元のボタンにバインドできませんでした。私はclickoriginalbuttonsコードを変更し、通常のjavascriptのクリックを使用し、それはIEで動作するようになった。これで私のコードは次のようになります:var origButton = document.getElementById($(daButton).attr( "id")); origButton.click();問題は現在解決されています:) – legendofawesomeness