我有两个禁用的输入字段(城市和州),当在表单中填写第三个字段(邮政编码)时会自动计算,其相关部分是:
<form method="post" name="myemailform" action="submit.php">
<input type="text" name="home_address_city" id="home_address_city" disabled>
<input type="text" name="home_address_state" id="home_address_state" disabled>
<input type="submit" name="Submit" id="submit_button">
</form>
然后,我获取表单数据并通过ajax将其提交给通过电子邮件发送的PHP脚本:
$(function(){
$('form').on('submit', function(e){
e.preventDefault();
$.ajax({
type: $(this).attr('method'),
url: $(this).attr('action'),
data: $(this).serialize()
});
});
});
然后,PHP 会按如下方式获取所有内容:
extract($_POST, EXTR_PREFIX_SAME, "extr");
并且应该在电子邮件正文中输出它,如下所示:
$email_body = "City:'t$home_address_city'n"."State:'t$home_address_state'n";
这些disabled
字段以前是手动填写的,并且通过电子邮件发送它们没有问题。 由于禁用它们,它们不会通过电子邮件发送,但其他一切都可以正常工作。 如果我删除disabled
或将其替换为 readonly
. (考虑并拒绝使用 readonly
,因为它允许您专注于字段并选择文本,并且客户端根本不希望用户与字段交互。
那么如何将disabled
输入字段的值传递给 PHP 脚本呢?
如上面的注释所示,您可以使用 JQuery 在$.ajax
调用之前启用 disabled
input
元素。 这篇文章有细节。