2017-01-08 7 views
0

ユーザーがフォームでsubmitをクリックすると、1つのフィールドの内容を変更してから送信します。私は今、これを行うために約20種類の方法を試しましたが、どれもうまくいきません。送信イベントを認識してキャンセルしてフィールドを変更できますが、は同じイベントでフォームを再送信できません。私の最新の試みは、jQueryを使っていた:JavaScript:ユーザーが投稿したときにフォームを変更する

$("form").submit(function (e) { 
     e.preventDefault(); 
     var element = document.getElementById("categorySafari"); 
     var selection = element.options[element.selectedIndex].text; 
     document.getElementById("category").value = selection; 
     this.submit(); // <-- this doesn't work and nothing I've tried here works 
    }); 
+0

はコンソールでエラーをチェックしましたか? –

+0

「送信は機能ではありません」 –

+0

もちろん送信することはできません。送信するたびにキャンセルします! heh ...無限ループ?何らかのフラグを使ってクリーンアップが実行されているかどうかを判断し、クリーンアップの場合は 'preventDefault()'を実行しないでください。 – dandavis

答えて

1

をフォームを誘発することができる方法です。それはフォーム提出を妨げている。

+0

また、フォームが自動的に送信されるので、 'this.submit()'も削除してください。 – Barmar

0

たぶん、この関数からの呼び出しは、フォームのイベントを提出や、送信ボタンにonClickイベントを入れて、あなたのフィールドを処理するための関数を呼び出してみてください。
Hereあなたはe.preventDefault()this.submit()コールを削除するJSと

関連する問題