在我的网站上,我正在从数据库中检索多个以前保存的地址,并在我的网站上显示。现在,用户可以选择其中任何一个,所选地址的数据将被发送到下一页以插入数据库。
http://tinypic.com/r/2lj70i9/5
我的jsp代码获取地址:
<a href="javascript:next()">
<div class="address1">
<form name="form2" method="post">
<input name="name" type="text" readonly="readonly" value="<% out.print(x1); %>" style="font-weight: bold;" />
<input name="address" type="text" readonly="readonly" value="<% out.print(x2);%>"/>
<input name="city" type="text" readonly="readonly" value="<% out.print(rs1.getString("city"));%>"/>
<input name="state" type="text" readonly="readonly" value="<% out.print(rs1.getString("state"));%>"/>
<input name="pin" type="text" readonly="readonly" value="<% out.print(rs1.getString("pin"));%>"/>
<input name="phone" type="text" readonly="readonly" value="<% out.print(rs1.getString("mob"));%>"/>
</form>
<div class="selectLine">Click to Select</div>
</div>
</a>
我的Javascript是:
function next()
{
var f=document.forms["form2"];
f.method="post";
f.action='checkout3.jsp';
f.submit();
}
但问题是我选择的只是顶部地址被提取到下一页。
答案 0 :(得分:0)
目前,您的主要元素都会调用您的next()
函数,而不会传递有关所选项目的任何信息。您可以使用onclick='next(this)'
来改变它,以便您的函数获得对所单击锚点的引用,但通常最好不要将JS直接包含在您的html中 - 特别是如果您使用的是像jQuery这样的库易于设置事件处理程序。 (我假设您已经使用了jQuery,或者在您为问题添加了jQuery标记时对它开放。)
我建议改变你的锚点:
<a href="javascript:next()">
...类似于:
<a class="selectAddress">
然后您可以使用基于jQuery的点击处理程序代替您的next()
函数,如下所示:
$(document).ready(function() {
$("a.selectAddress").click(function() {
$(this).find("form")
.prop("action", "checkout3.jsp")
.submit();
});
});
即,将单击处理程序绑定到该类的所有锚点。在处理程序中,this
将是单击的特定锚点,因此您可以使用.find()
方法选择作为锚点后代的表单,然后设置其action
属性,然后提交它。请注意,您的表单在其html中包含method="post"
,因此无需像在next()
函数中那样再次设置此表单。