1. ホーム
  2. javascript

[解決済み] ロード時に入力値を追加し、フォームを送信する。

2022-02-10 23:21:50

質問内容

以下のようなフォームがあります。

<form action="http://example.co.uk/order" method="post" id="voucher" class="AVAST_PAM_nonloginform">
  <fieldset>
    <h4>Vouchers</h4>
    <input type="text" class="discount_name form-control" id="discount_name" name="discount_name" value="">
    <input type="hidden" name="submitDiscount">
    <button type="submit" name="submitAddDiscount" class="button btn btn-default button-small"><span>OK</span></button>
  </fieldset>
</form>

で、以下のスクリプトを使用しています。

<script>
window.onload = function(){
document.getElementById(\"discount_name\").value = \"50681\";
}
</script>

を入力してください。その後、私は使っています。

<script>
window.onload = function(){
document.forms['voucher'].submit();
}
</script>

をクリックして、サブミットを有効にします。

しかし、2番目のスクリプトを使用すると、テキストボックスに "50681" が入力されなくなります (代わりに空白の入力が送信されます)。

元々、私はこのようなコードを持っていました。

  <script>
    window.onload = function(){
    document.getElementById(\"discount_name\").value = \"50681\";
document.forms['voucher'].submit();
    }
    </script>

(タイミングの問題かもしれないと思い分割しました)。

何か思い当たることはありますか?

p.s. バックスラッシュの理由は、現在、動作させるまでphpで実行されているためです。

解決するには?

この問題は (\"discount_name\").value = \"50681\"; &です。 document.forms['voucher'].submit();

いずれの場合も \ を使用する必要があります。 index という数字が表示されます。フォームが1つだけ存在すると仮定して 0 インデックスに

 window.onload = function(){
    document.getElementById("discount_name").value = "50681";
    document.forms[0].submit();
    }

注:デモでは、アクションのurlを https そうでない場合は、jsfiddleからの呼び出しが禁止されます。あなたの場合 http コード内の

DEMO USING ID