当我使用javascript单击链接时,如何在contact.html页面中设置表单元素的值?

时间:2012-06-17 10:42:27

标签: javascript

我有两页:

  1. 产品页面,包含产品,每个产品都有“向我们发送消息”链接;

  2. 联系页面,其中包含四个元素的表单:姓名,电子邮件,主题和消息;

  3. 当我点击products.html页面中的“向我们发送消息”链接时,我希望contact.html中表单的“主题”元素的值为产品的标题。

    所以,如果我有一个标题为“BMW 530xd 2009”的产品,当我点击下面的“发送给我们留言”链接时,我想向我发送contact.html页面和“主题”字段用“BMW 530xd 2009”自动完成的表格。

    我是如何用javascipt做的?

    谢谢

3 个答案:

答案 0 :(得分:0)

最好的方法是让字段已经设置了值,我不知道你在服务器端使用的技术......

无论如何,使用javascript回答你的问题你可以使用表单的处理程序 onsubmit 来完成这项工作

<form onsubmit="return fillProd(this)" ...
<input name="subject" ....

现在又一次让服务器端为我们提供值很好但是可以使用DOM函数或jquery(或类似的东西)从文档DOM获取客户端的值

假设您拥有类似

的产品标题
<div class="prod-title" id="prodtitle">BMW 530xd 2009</div>

然后我们可以使用jquery

获取值
$("#prodtitle").html

或使用DOM

document.getElementById("prodtitle").innerHTML

使用DOM的函数示例

function fillProd(form) {
   form.subject.value=document.getElementById("prodtitle").innerHTML;
   return true;
}

注意:表单处理程序和on函数的返回值(rerturning true)非常重要

答案 1 :(得分:0)

当有人点击上述链接时,您可以使用ajax在products.html页面中加载contact.html表单,然后如果您正确处理所有内容,您就可以更改值,因为据我所知您不能使用客户端语言将表单值从一个页面更改为另一个页面。

另一种选择是直接在contact.html内写入表单,其css属性为display:none;所以当有人点击链接时,它会变为display:block;在您的javascript中处理值更改。

希望这有帮助。

答案 2 :(得分:0)

建立&#34;发送消息&#34;的链接像这样: contact.html?受试者= your_value_here

在contact.html上,您可以像这样检索

if(location.search) {
   subject = location.search;
}

并填充主题(我第一次错过了)

document.getElementById("id_of_subject_field").innerHTML = subject;

这不是一个优雅的解决方案,但它应该可以解决问题。