我试着搜索这个,但没有找到好的解决方案。 我的问题是我有一个包含很少文本框的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中失败
任何建议都会非常感激。我也尝试了输出缓冲,但我也没有帮助发送表单元素的值。
答案 0 :(得分:0)
只需提交表单
即可function validate_me(){
$('#user_form form').submit();
}
注意:将action
属性添加到表单标记
答案 1 :(得分: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>
答案 2 :(得分:0)
我刚刚注意到同样的问题。我想要做的是用另一个表单切换一个表单,同时保留用户在表单中输入的值,例如消息。我尝试通过console.log输出表单,并注意到除了用户输入的数据外,所有表单都显示出来。
我试图让第二个表单出现,以确保用户同意他们要使用按钮返回并进行更改。我重新显示了原始形式和TADA David copperfield魔法,表格中没有任何输入内容。 (文字输入和文本区域)
我不确定为什么会发生这种情况,我猜我能做的就是在尝试保存表单数据之前将用户输入的数据存储在命名空间全局中,然后重新显示表单并一次替换用户内容一个字段
有什么人知道这是什么原因?它必须与输入在浏览器中的工作方式有关。