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

你更新的代码试试这个 1 如果它不起作用,请告诉我。

<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 输出表单,发现除了用户输入的数据之外的所有表单都显示出来了。

我试图让第二个表单出现,以确保用户同意他们将要使用按钮返回并进行更改的操作。我重新显示了原始表格和 TADA David Copperfield 魔术,表格在那里没有输入中的任何内容。(文本输入和文本区域)

我不确定为什么会发生这种情况,我猜我所能做的就是在尝试保存表单数据之前将用户输入的数据存储在命名空间的全局中,然后重新显示表单并一次替换一个字段的用户内容。

这是什么原因有人知道吗?它一定是关于输入如何在浏览器中工作的东西。

于 2013-12-02T22:21:36.293 回答