ユーザーが送信ボタンをクリックすると、blockUI がトリガーされ、サーバーが結果のページをロードするのをブラウザーが待機するときにローダー GIF が表示されるフォームがあります (モデルはサーバー上で実行されており、結果が表示されるまでに数秒かかる場合があります)。ページが読み込まれるため、送信ボタンが機能していることをユーザーに知らせるために blockUI が存在します)。
問題: Chrome で「送信」ボタンをクリックすると blockUI が表示されますが、loader.gif は壊れた画像として表示されますが、FF と IE8 ではこれは問題なく動作します。Chrome が他のすべての HTTP リクエスト (loader.gif の場合) などを停止するフォーム送信を処理する方法について何か特別なことはありますか??
編集: この問題は、リンクがクリックされたときにも発生し、loader.gif で blockUI がトリガーされます。IE8 では GIF が読み込まれ、FF では時々読み込まれ、Chrome では壊れた画像のアイコンが表示されます。新しいページの HTTP リクエストが GIF の読み込みを妨げていると思います。助言がありますか???
フォームはシンプルです。「送信」ボタンは実際には であるtype="button"
ため、フォームの送信を Javascript で制御できます。
<input class="input_button" type="button" value="Submit">
Javacsript/jQuery は次のとおりです。
$(document).ready(function() {
$("#form1").validate({
rules: {
upfile: "required"
}
});
var browserWidth = $(window).width();
var browserHeight = $(window).height();
var winleft = (browserWidth / 2) - 220 + "px";
var wintop = (browserHeight / 2) - 30 + "px";
$('input[value="Submit"]').click(function () {
$("#form1").submit();
$.blockUI({
css:{ "top":""+wintop+"", "left":""+winleft+"", "padding": "30px 20px", "width": "400px", "height": "60px", "border": "0 none", "border-radius": "4px", "-webkit-border-radius": "4px", "-moz-border-radius": "4px", "box-shadow": "3px 3px 15px #333", "-webkit-box-shadow": "3px 3px 15px #333", "-moz-box-shadow": "3px 3px 15px #333" },
message: '<h2 class="popup_header">Processing Request...</h2><br><img src="/images/loader.gif" style="margin-top:-16px">'
});
});
});
</script>
正常に.validate()
動作します。