获得HTML文本输入的价值

时间:2012-01-10 18:30:47

标签: html forms input

假设我有一个这样的HTML表单来收集网站访问者的电子邮件:

<form name="input" action="handle_email.php" method="post">
Email: <input type="text" name="email" />
<input type="submit" value="Newsletter" />
</form> 

现在,当按下提交按钮时,我可以使用$ _POST [“email”]获取handle_email.php中电子邮件字段的值。但是说我想在其他地方使用电子邮件文本输入的值。是否可以在表单处理的“外部”获取电子邮件值?

更新:感谢大家的快速回复。我要做的是让电子邮箱进行双重任务。例如,我在上面的代码中将提交按钮重命名为“Newsletter”。按下该按钮后,handle_email.php脚本将只注册用户以获取新闻稿。但是,我在同一页面上还有一个“注册”链接,可以将访问者重定向到注册表单,如果他们愿意,可以输入大量其他信息。现在,如果用户碰巧在电子邮件文本框中输入了数据,我想将其发送到注册页面,以便可以预先填充该字段。例如:

<a href="http://mywebsite.com/register?user_email="[how can I put the email here?]"/>Register</a>

对于我在原帖中不够清楚而道歉。

6 个答案:

答案 0 :(得分:19)

如果要在同一页面上的其他位置使用电子邮件输入的值,例如进行某种验证,则可以使用JavaScript。首先,我会为您的电子邮件文本框指定一个“id”属性:

<input type="text" name="email" id="email"/>

然后我会用JavaScript检索该值:

var email = document.getElementById('email').value;

从那里,您可以对'email'的值进行额外处理。

答案 1 :(得分:10)

在这里查看我的jsFiddle:http://jsfiddle.net/fuDBL/

每当您更改电子邮件字段时,链接都会自动更新。这需要少量的jQuery。因此,现在您的表单将根据需要运行,但您的链接将动态更新,以便当有人点击它时,它包含他们在电子邮件字段中输入的内容。您应该验证接收页面上的输入。

$('input[name="email"]').change(function(){
  $('#regLink').attr('href')+$('input[name="email"]').val();
});

答案 2 :(得分:1)

取决于您要使用电子邮件的位置。如果它是在客户端,而不是发送到PHP脚本,JQuery(或javascript)可以做到这一点。

我创造了一个解释相同的小提琴 - http://jsfiddle.net/qHcpR/

它有一个警告,当你点击文本框本身时会加载。

答案 3 :(得分:1)

如果您的页面在提交时刷新 - 是的,但只能通过查询字符串:http://www.bloggingdeveloper.com/post/JavaScript-QueryString-ParseGet-QueryString-with-Client-Side-JavaScript.aspx(您必须使用方法“GET”)。 否则,您可以从php脚本返回其值。

答案 4 :(得分:0)

是的,你可以使用jQuery来完成这个,想法是

在表单中使用隐藏值,并在提交表单之前将外部文本框中的值复制到此隐藏值。

<form name="input" action="handle_email.php" method="post">
  <input type="hidden" name="email" id="email" />
  <input type="submit" value="Submit" />
</form> 

<script>
   $("form").submit(function() {
     var emailFromOtherTextBox = $("#email_textbox").val();
     $("#email").val(emailFromOtherTextBox ); 
     return true;
  });
</script>

另见http://api.jquery.com/submit/

答案 5 :(得分:0)

只需使用简单的javascript:

<form name="input" action="handle_email.php" method="post">
  Email: <input type="text" name="email" />
  <input type="submit" value="Newsletter" />
</form> 

<a href="javascript:var the_mail = document.getElementByName('email').value; window.location = 'http://mywebsite.com/register?user_email=' + the_email;">Register</a>

您还可以更改电子邮件输入的类型,例如: