フォーム内の入力フィールドにフォーカスしているときに「入力」をクリックすると、次のコードが使用されるため、標準の送信ボタン機能が無効になります。むしろjavascriptは新しいフォームを作成し、別のページに投稿リクエストを送信します。私はこれを使用して、 "フォーム内のフォーム"機能を実現できるようにしています。入力フィールドには、投稿を実行するための同様のコードがある独自の送信ボタンがあります。IEでこのjQueryコードが動作しないのはなぜですか?
これは完全に機能します。 IEでEnterキーを押しても何もしません。コードは以下の通りです:
//event handler for input field within standard form
$('#inputfield').bind('keypress', function(e) {
var code = e.keyCode || e.which;
if(code==13){
//suppress default submit functionality
$('form').submit(function() {
return false;
});
//...assemble some data here...
var url_string = "...";
var $form = $("<form method='POST'>").attr("action", url_string);
$("<input type='hidden' name='body'>").attr("value",body).appendTo($form);
$("<input type='hidden' name='title'>").attr("value",title).appendTo($form);
//...create more form elements here...
$form.appendTo("body");
$form.submit();
}
});
私はIE6,7,8で試したことがありますか?
更新:はちょうど問題について詳しく説明する:Firefoxの、最後の$form.submit();
ラインにjqueryのは、提出すると、ページがリダイレクトするフォームを生成原因となります。 IEでは何も起こりません。 keypress はをIEで実行します。そのフォームは送信されないようです。
IEが吹いているので?申し訳ありませんが、しなければならなかった。 – Vince
+1 ...私はしなければならなかった。 –