我有一个页面,您可以在其中查看酒店的信息。在此页面上有一个小表格来搜索您所在酒店页面的房间可用性。
<form id="form1" name="form1" action="search.asp" method="POST">
<input type="hidden" id="Hotel" name="Hotel" value="<%= HotelID %>">
Arrive: <input value="<% strURLBookingDate %>" type="text" id="ArrivalDate" name="ArrivalDate">
Depart: <input value="<% strURLBookingDate2 %>" type="text" id="DepartureDate" name="DepartureDate">
<input type="submit" name="btnHotelSearch" value="Search This Hotel">
<input type="submit" name="btnHotelSearchAll" value="Search All Hotels">
</form>
但是我还需要在表单上添加一个按钮,这样我点击它就可以搜索所有酒店。要做到这一点,我只需要在单击按钮时将名为“Hotel”的隐藏输入值设置为0。
点击btnHotelSearchAll后,如何在提交表单之前设置隐藏值?
答案 0 :(得分:16)
您可以在click
上挂钩btnHotelSearchAll
事件,然后填写值:
document.getElementById("btnHotelSearchAll").onclick = function() {
document.getElementById("Hotel").value = "0";
};
绝对确定页面上有 nothing else,其中包含id
或name
“Hotel”,并且您没有任何全局变量'使用该名称声明,因为某些版本的IE have bugs将name
值和全局变量名称混合到用于document.getElementById
的命名空间中。或者,或者,使隐藏字段上的id
更加独特(name
可以保持原样,因此您无需更改后端; id
仅限于name
客户端,<input type="hidden" id="HotelField" name="Hotel" value="<%= HotelID %>">
^
是发送到服务器的内容。例如,你可以这样做:
document.getElementById("btnHotelSearchAll").onclick = function() {
document.getElementById("HotelField").value = "0";
// ^
};
然后稍微更改一下代码:
<form ...>
....
</form>
...
<script>
...
</script>
<强>更新强>:
请注意,在按钮放入DOM后,连接按钮的代码必须运行。因此,使用上面的代码,这意味着确保脚本块位于页面中的表单下方,如下所示:
script
如果body
块上面按钮,那么该脚本运行时该按钮将不存在。这就是为什么经常最好将脚本放在</body>
元素的末尾,就在结束onload
标记(more here)之前。
如果您真的想要上面的按钮,那么您必须通过使其成为window.onload
事件处理程序或类似事件来延迟调用。但是document.getElementById
在页面加载过程中发生了非常(例如,等待所有图像和其他资产加载)可能会与您的表单进行交互,因此通常最好尽快完成。
偏离主题:我的标准注意事项是,通过使用像jQuery,Prototype,{{{{}}这样不错的JavaScript库,可以更早,更强大地制作这些内容。 3}},YUI或Closure。例如,jQuery将为您处理{{1}}中的IE错误,因此您不必担心混淆问题。
答案 1 :(得分:2)
如果您想使用jQuery,请尝试以下操作。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" ></script>
<script type="text/javascript" >
$(function(){
$('#btnHotelSearch').click(function(){
$('#Hotel').val(0);
});
});
</script>
答案 2 :(得分:1)
使用onclick
属性调用将设置隐藏字段值的javascript函数
<input type="submit" name="btnHotelSearchAll" value="Search All Hotels" onclick="SetHotelID();">
<script>
function SetHotelID()
{
$('#Hotel').val('0');
}
</script>
注意我正在使用Jquery
答案 3 :(得分:1)
在这里,请告诉我这是否有效......
<form id="form1" name="form1" action="" method="POST">
<input type="hidden" id="Hotel" name="Hotel" value="<%= HotelID %>">
Arrive: <input value="<% strURLBookingDate %>" type="text" id="ArrivalDate" name="ArrivalDate">
Depart: <input value="<% strURLBookingDate2 %>" type="text" id="DepartureDate" name="DepartureDate">
<input type="submit" name="btnHotelSearch" value="Search This Hotel">
<input type="submit" name="btnHotelSearchAll" value="Search All Hotels" onclick='document.getElementById("Hotel").value="0"'>