ajaxを介して登録フォームを自分のサイトに送信する簡単なスクリプトを書いています。最新のブラウザで完全に機能します。IE9では、フォームは1回だけ正しく送信されます。次に、同じフォームをもう一度送信しようとすると、2回目にフォームが返されることはなく、ローダーgifは永続的に残ります。なぜこれが起こっているのか考えていますか?
編集:フォームを送信するためにこのjqueryフォームプラグインを使用していることを指摘しておく必要があります。次に、フォームを送信した後にソースを調べると、正しいマークアップがそこにあります。フォームを表示するために不透明度スタイルを手動で追加できるので、これは問題がIE9とjqueryフェード関数に関連していることを示唆していると思います。
<script type="text/javascript">
jQuery.fn.outerHTML = function(s) {
return (s)
? this.before(s).remove()
: jQuery("<p>").append(this.eq(0).clone()).html();
}
jQuery(document).ready(function($){
$("form input").removeAttr('tabindex');
ajaxregister = function(e) {
e.preventDefault();
$(this).fadeTo(500, 0);
$(this).siblings("#loading").fadeIn();
$(this).ajaxSubmit({
//url:'http://streetofwalls.dev/wp-login.php?action=register'
success: function( data ) {
//console.log(data);
var $message = $(data).find('.message').outerHTML();
var $error = $(data).find('#login_error').outerHTML();
var $form = $(data).find('#registerform').outerHTML();
console.log( 'success' );
$(e.target).html( ( ($error) ? $error : $message ) + $form ).fadeTo(500,1);
$(e.target).siblings("#loading").fadeOut();
}
});
}
$(".widget_reg_widg #registerform").submit( ajaxregister );
});
</script>