0

ハイパーリンクを使用してフォームを送信しようとしていますが、次のページに値が投稿されません。コード フォームは次のとおりです。

<?php
$email = array('name'=>'accountno','id'=>'accountno','value'=>set_value('email'));
 ?>    

<form method="post" id = "login_form" action="/salesrep/check" name = "login_form" class="custLogin">
<fieldset style="color: #BD1313; width: 440px;">  <input type="hidden" name="submit_type" id="submit_type" value="account_only">
<br><center><label for="customerNo"><b>Customer No:</b></label>
<?  echo form_input($email);?>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="/salesrep/check" class="shopping-icon" onclick="document.login_form.submit()">Submit</a><? echo form_input($button);?>   </center>
   <p>&nbsp;</p>
           </fieldset> 
   </form>

次のページのコードは次のようになります。

<?
print_array($_POST);
         die();
 ?>

ここでボタンを使用すると、次のページに値が正常に投稿されますが、onclick イベントのハイパーリンクを使用して値を投稿できませんでした。私はどこで間違いを犯していますか?? テキスト ボックスに既に値を挿入しているのに、空の配列が表示されるのはなぜですか?? または、リンクを使用して値を投稿し、次のページでそれらを取得する方法はありますか?

4

1 に答える 1

0

本当の問題は、そもそもリンクといくつかの JavaScript を使用してフォームを送信しようとしていることです。これをしないでください。ボタンは、フォームを送信することをユーザーに知らせます。フォーム モードの場合、スクリーン リーダーに表示されます(一部の JavaScript を含むリンクは表示されません)。彼らは「ただ働く」だけです。

リンクといくつかの JavaScript の使用を主張する場合、コードが機能しない理由は、JavaScript が実行され、フォームの送信が開始され、リンクがたどられ、代わりにページに対して GET 要求が行われるためです。

通常preventDefault、イベントを呼び出してこれを停止できますが、古いスタイルの組み込みイベント属性を使用しているため、return false;代わりにそこから呼び出す必要があります。

推奨される読書:プログレッシブ エンハンスメント控えめな JavaScript

于 2013-02-14T10:05:26.050 に答える