私は次のフォームを持っています
<form name="myForm" id="myForm" method="post" enctype="multipart/form-data" action="script.php">
そしてこのjQuery
$(document).ready(function() {
$('#previewButton').click(function() {
// Change form's target to be in a new window.
$('#myForm').attr('target', '_blank');
/*
* Create a hidden input field and add it to the form to designate that the
* action the form is performing is a preview action.
*/
$('#myForm').append($('<input id=\"previewAction\" name="previewAction" type=\"hidden\" />'));
// Submit the form.
$('#myForm').submit();
// Change the form's target to be the current page again.
$('#myForm').attr('target', '');
/*
* Remove the hidden input field we just added so that the form can submit
* normally.
*/
$('#previewAction').remove();
return false;
});
});
私は2つの異なるページにこれとまったく同じ2つのコードを持っています。1つは、[プレビュー]リンクをクリックすると、フォームが新しい空白のウィンドウに送信されます。他のページでは、フォームが送信されず、[プレビュー]をクリックしてもウィンドウが開きません。
.click()が実行されています。これは、.click()にalert()を呼び出して、アラートボックスが表示されたためです。
以下を実行すると、フォームの.submit()が他の場所でオーバーライドされていないことがわかります。
var submitEvents = $('#myForm').data("events").submit;
jQuery.each(submitEvents, function(key, value) {
alert(value);
});
また、Javascriptエラーは発生しません。
そして、なぜプレビューをクリックしても(どうやら)何も起こらないという考えはありますか?