【发布时间】:2010-02-09 04:17:42
【问题描述】:
我有一个“电子邮件”地址的表单字段,我想在每个页面的顶部设置一个小表单,其中有一个“电子邮件地址”字段,然后是一个注册按钮到一个页面来完成一个详细的邮件列表订阅表格。我有两个问题:
- 如何将表单中输入的数据传递到专用“邮件列表”页面上的电子邮件地址?
- 当用户点击“提交”时,如何将用户重定向到专用的“邮件列表”页面?
【问题讨论】:
标签: javascript forms
我有一个“电子邮件”地址的表单字段,我想在每个页面的顶部设置一个小表单,其中有一个“电子邮件地址”字段,然后是一个注册按钮到一个页面来完成一个详细的邮件列表订阅表格。我有两个问题:
【问题讨论】:
标签: javascript forms
当您准备好使用 javascript 传递数据时,何不更进一步,为您的功能提供一个页面。
使用 javascript,您可以显示或隐藏您希望用户看到的表单。
甚至您构建一个表单并在两个状态之间显示或隐藏一些额外的字段。
在这些配置中,读取同一页面中的值非常容易。
并且用户体验会更好。
编辑(在绝望的评论之后;)
在页面的 BODY 中设置这样的表单:
<form action="javascript:void(0)" >
<input type="text" name="email" />
<input type="submit" value="sign up!" onclick="signUp(this.form)"/>
</form>
<script>
function signUp(form){
window.location.href = 'signUp.html?email=' + form.email.value;
}
</script>
在注册页面的正文中:
<form id="frm" action="javascript:void(0)" >
<input type="text" />
<input type="text" name="email" />
<input type="submit" value="register!" onclick="register(this.form)"/>
</form>
<script>
function urlParam(name, w){
w = w || window;
var rx = new RegExp('[\&|\?]'+name+'=([^\&\#]+)');
var val = w.location.href.match(rx);
return !val ? '':val[1];
}
var frm = document.getElementById('frm');
frm.email.value = urlParam('email');
</script>
当您单击第一个表单的按钮时,会使用注册页面的参数构建 url。
注册页面加载完毕,然后我们获取表单的引用,用函数“urlParam”读取url的值,并将值放到名为“email”的字段中
【讨论】:
如何将表格中输入的数据传递到专用“邮件列表”页面上的电子邮件地址?
为电子邮件input 使用正确的name 属性。
当用户点击“提交”时,如何将用户重定向到专用的“邮件列表”页面?
您可以使用form 元素的action 属性来定义它:
<form action="mailing-list.php" action="post">
…
</form>
【讨论】:
$_POST(假设您使用的是 PHP)?
<input name="<?php echo $_POST['email']; ?> 填写在 B 页的表格中。