送信ボタンが押された後にフォームの値を変更する 質問する

送信ボタンが押された後にフォームの値を変更する 質問する

[編集] いろいろ調べた結果、問題はCKEditorをページに統合する方法にあることがわかりました。シンプルで明白な方法はするこの場合、承認された回答に示されているように機能します。

こんにちは、

送信ボタンが押された後、実際の送信が行われる前に、フォームの値を変更する必要があります。

フォームの「送信」イベントにフックし、そこでテキスト フィールドの値を手動で変更しようとしましたが、実際には送信された値は変更されないようです。

何か案は?

ベストアンサー1

ハンドラーが機能しなかったというあなたの発言が気になりますsubmit。私の場合は機能します。フォームを送信する前に非表示のフィールドに入力するために何年も使用してきました。他のフォーム フィールドでも機能するはずです。

例 (ライブコピー):

HTML:

<form id='theForm'
    action='http://www.google.com/search'
    method='GET' target='_new'>
      <label>Search for:
        <input type='text' name='q' id='txtSearch'></label>
      <input type='submit' id='btnSearch' value='Search'>

JavaScript:

window.onload = function() {

  document.getElementById('theForm').onsubmit = function() {
    var txt = document.getElementById('txtSearch');
    txt.value = "updated " + txt.value;
  };
};​

Windows 上の IE6 および IE7、Linux 上の Chrome、Firefox、Opera でテストされ、動作します。


アップデート: 以下のコメントから判断すると、jQuery を使用しているようです。jQuery を使用すると、すべてにおいて問題なく動作します。

$('#theForm').submit(function() {
  var txt = $('#txtSearch');
  txt.val("updated " + txt.val());
});

実例同じブラウザセットでテストされ、動作しています。このバージョンではなく、よりオープンな検索を使用しますがid、それでも機能します。

おすすめ記事