关于多提交按钮的表单提交问题(用客户端代码判断被点击的按钮)
来源:互联网 发布:双系统备份软件 编辑:程序博客网 时间:2024/05/16 11:30
问题描述:假设有一个留言板,在管理员页面有“回复“和“删除“2个功能,点击回复以后表单直接提交执行回复操作,但点击删除时需要弹出一个确认框,当用户确认以后才能提交执行删除操作。显然这里就需要用到客户端脚本。
下面是我的做法:
服务器端:使用VB.net
客户端:适用JavaScript
表单的部分代码如下:
<form id="Form1" method="post" runat="server" onsubmit="return inputValidate()">
...
<asp:Button id="Button1" tabIndex="2" runat="server" Text="回复"></asp:Button>
<INPUT type="reset" value="重置">
<asp:Button id="Button2" runat="server" Text="删除"></asp:Button>
...
</form>
因为表单有2个按钮,所以表单提交前需要判断提交的按钮是哪个。可以采用下面语句
event.srcElement.id
或者
event.srcElement.value
来判断是哪个按钮提交了。
一开始你可能认为这个判断应该写在inputValidate()函数里面,在表单发生提交事件的时候判断。
但实际上这是不行的,因为我们需要的事件源是提交按钮,那么这个判断就只能写按钮的click事件函数里面。
但是这样又如何控制表单提交呢,因为和表单提交有关系的是submit事件函数。
好在click事件发生在submit事件之前,这样就有了下面的这个解决办法:
设一个中间变量,在click事件发生的时候把event.srcElement.id或者event.srcElement.value保存下来,在之后的submit事件中判断这个中间值,然后采取不同的动作。代码如下:
<script language="javascript">
<!--
var bt;
function check(){
bt=event.srcElement.value
}
function inputValidate(){
if (bt=="删除")
return confirm("确实要删除留言吗?");
else{
//do someting
}
return true;
}
//-->
</script>
如果细心的话,你会发现在上面的表单里面我没有为删除按钮指定click事件的方法。这是因为这个按钮是一个服务器控件,如果你在标签中指定onclick属性内容,服务器将这个内容和一段服务器代码关联起来,而我门现在需要的是和客户端代码关联。怎么解决呢?
好在服务器控件的Attributes属性有Add方法,可以动态给控件加属性和属性的值。这里加的属性就不会被误认为是绑定服务器端代码了。
在Page_Load方法中加入下面代码。
Me.Button2.Attributes.Add("onclick", "check()")
这样一来,整个问题就解决了。
- 关于多提交按钮的表单提交问题(用客户端代码判断被点击的按钮)
- 关于表单提交按钮多次点击多次触发的解决方法
- button按钮点击表单自动提交的问题
- jQuery点击一次按钮提交多个表单带来的问题
- 表单的自定义按钮提交
- 回车键提交表单(点击按钮)
- 回车键提交表单(点击按钮)
- 关于ie8button按钮自动提交表单问题
- 关于js 提交按钮的问题
- 关于Asp.Net中避免用户连续多次点击按钮,重复提交表单的处理
- 多按钮提交表单
- form表单底下的button按钮点击自动提交恶心问题的解决
- form表单判断是那个按钮的提交
- 关于js中按钮类型是image时表单验证问题---点击一次可以验证再次点击直接提交--的问题
- 表单中有多个提交按钮,想实现点击不同的按钮,实现不同的操作
- 表单提交按钮时图片时遇到的问题
- 今天的小bug , 表单按钮自动提交问题
- js解决按钮被多次点击的问题(微信支付-支付提交)
- 一种简单方法实现页面导出(Excel)功能 选择自 xieyun1977 的 Blog
- 初次带女孩看电影7大注意事项
- 最优化-约束/无约束共轭梯度法程序(c++)
- Imail的安装和配置
- [方子]黑胡椒牛排
- 关于多提交按钮的表单提交问题(用客户端代码判断被点击的按钮)
- 在 NetBeans IDE 中执行操作的指南(NetBeans官方中文版本)
- Access内保存图像Test
- 操作系统实验进程同步--读者优先
- 霓虹灯下失落的人群
- 随笔 (2004-12-11)
- 操作系统实验进程同步--写者优先
- VS.NET 学习方法论
- 求职网站链接