0

これを検索してみましたが、良い解決策が見つかりませんでした。私の質問は、テキスト ボックスがほとんどない HTML フォームがあることです。ユーザーが詳細を入力して送信を押すと、この同じ HTML フォームを管理者の電子メールに送信します。問題は、値を含む HTML マークアップを取得できないことです。何か提案はありますか。

<div id="user_form" action="" method="post">
<form onsubmit="return validate_me();">
   <table>
      <tr>
         <td>Name</td>
         <td><input type="text" name="test" id="test"/></td>
      </tr>
      <tr>
         <td colspan="2">
           <input type="submit" name="send" id="send" value="Send"/>
           <input type="hidden" name="html_data" id="html_data"/>
         </td>
      </tr>
   </table>
</form>
</div>

したがって、ユーザーが送信ボタンをクリックすると、値を含むフォーム全体をサーバーに送信し、それを管理者の電子メールに送信できます。どうやってやるの。

フォローしてみた

<script type="text/javascript>
function validate_me(){
   ("#html_data").val($("#user_form").html());
}
</script>

ただし、上記では、テキスト ボックスの値を指定せずにマークアップのみを送信しています。上記のみが IE 9 で動作します。Safari 5.1.7 および FF 23 では失敗します

どんな提案でも大歓迎です。また、出力バッファリングも試しましたが、フォーム要素の値を送信するのにも役立ちませんでした。

4

3 に答える 3

0

あなたの更新されたコードはこれを試して、うまくいかないかどうか教えてください。

<div id="user_form" >
 <form onsubmit="return validate_me();" method="post" action="SOME_ACTION_URL">
 <table>
  <tr>
     <td>Name</td>
     <td><input type="text" name="test" id="test"/></td>
  </tr>
  <tr>
     <td colspan="2">
       <input type="submit" name="send" id="send" value="Send"/>
       <input type="hidden" name="html_data" id="html_data"/>
     </td>
  </tr>

編集

 <script type="text/javascript>
  // on ready fill the value and then submit it
  jQuery("document").ready(function () {
     jQuery("#html_data").val($("#user_form").html());
  })
  function validate_me(){
   // YOUR code MUST be return 
  return true;
 }
</script>
于 2013-09-04T05:39:27.973 に答える
0

フォームを送信するだけ

function validate_me(){
 $('#user_form form').submit();
}

注:actionフォームタグに属性を追加してください

于 2013-09-04T05:31:00.327 に答える
0

この同じ問題に気付きました。私がやりたかったのは、あるフォームを別のフォームに切り替えながら、ユーザーがフォームに入力した値 (メッセージなど) を保持することでした。console.log 経由でフォームを出力しようとしましたが、ユーザーが入力したデータを除いてすべてのフォームが表示されることに気付きました。

ユーザーが戻って変更を加えるためのボタンで何をしようとしているのかに同意することを確認するために、2番目のフォームを表示しようとしていました。元のフォームと多田デビッド コッパーフィールド マジックを再表示しました。フォームは、入力内容に何も含まれていません。(テキスト入力とテキストエリア)

フォーム データを保存する前に、ユーザーが入力したデータを名前空間のグローバルに保存してから、フォームを再表示し、ユーザーのコンテンツを一度に 1 つのフィールドに置き換えることしかできないと思います。

誰かが知っているこの理由は何ですか?入力がブラウザでどのように機能するかについての何かでなければなりません。

于 2013-12-02T22:21:36.293 に答える