如何让beforeSubmit属性只对一个submit有效?

zhang_2007 2011-10-27 05:29:11
方法如下,问题如题,当我页面有多个submit时怎么办啊,请大侠指教.
$('#uploadForm').ajaxForm({ //这里调用jquery.form.js表单注册方法
beforeSubmit: function (a, f, o) {//提交前的处理
o.dataType = "json";
$('#uploadfield').block({ message: $('#ui'), css: { width: '300px', border: '#b9dcfe 1px solid', padding: '0.5em 0.2em' }
});
inte = self.setInterval("getprogress()", 500);
}
});
...全文
620 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhang_2007 2011-11-02
  • 打赏
  • 举报
回复
前台也:<%@ page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYpE html pUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">

<title></title>
<script type="text/javascript" src="js/jquery-1.3.2.js" ></script>
<%--<script src="js/jquery-1.4.1.js" type="text/javascript"></script>--%>
<script type="text/javascript" src="js/jquery.blockUI.js" ></script>
<script type="text/javascript" src="js/jquery.form.js" ></script>
<script type="text/javascript" src="js/jquery-ui-1.7.2.custom.js" ></script>
<script type="text/javascript" src="js/upload.js" ></script>

<link href="css/ui.theme.css" rel="stylesheet" type="text/css" />

<style type="text/css">
#ui{ color:#aaaaaa; }
.ui-progressbar-value { background-image: url(css/images/pbar-ani.gif); }
.percentText{LINE-HEIGHT: 20px;font-size:12px; font-weight:bold; color:#ffffff ; text-align:center; }
.ui-progressbar { height:2em; text-align: left; }
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }

</style>

</head>
<body>
<form id="uploadForm" runat="server" enctype="multipart/form-data">

<div id="uploadfield" style="width:300px; height:30px">

<input id="File1" type="file" runat="server" />
<asp:Button ID="Button1" runat="server" Text="上传" onclick="Button1_Click" />
</div>
<div id="ui" style="display:none" >
<div id="output" > </div>
<div id="progressbar"class="ui-progressbar ui-widget ui-widget-content ui-corner-all" style="width:296px; height:20px;"></div>
<input id="btn_cancel" type="button" value="取消上传" />
</div>

</form>
</body>
</html>
后台页:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using BigFileUploadHandle;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
BigFileUploadHandle.UploadContext context = BigFileUploadHandle.UploadContextFactory.InitUploadContext(this, Request.MapPath("~/temp/")); // 指定临时目录
}
protected void Button1_Click(object sender, EventArgs e)
{
BigFileUploadHandle.UploadContext context = BigFileUploadHandle.UploadContextFactory.GetUploadContext();
string FileName = context.GetFileNameByControl(File1.UniqueID);
string filePath = Request.MapPath("~/myupload/");
if ((context != null) && (context.Status == BigFileUploadHandle.uploadStatus.Complete))
{
if (context.SaveFile(File1.UniqueID, filePath + FileName))
{
BigFileUploadHandle.UploadContextFactory.Release();//释放资源 删除临时文件
}
}
}
}
你再看看吧
zhang_2007 2011-11-02
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 zhoufeng0401 的回复:]

给你个思路

onSubmit是表单上(也只能是表单)用的,提交表单前会触发
onClick是按钮等控件上用的,用来触发点击事件.

用作数据验证的时候,可以选择在submit按钮上的onclick中验证,可以在onsubmit中验证.但是从事件触发顺序上来说,onclick更早.顺序是:

用户点击按钮->onclick->如果onclick返回有效或未处理onclick则提交表……
[/Quote]真是辛苦你了,我的要求是在onclick之前执行,然后再执行onclick事件,而且是aspx.cs页的处理事件。如果能针对我提出的问题给出答案我会想法给你补加分的,分不是问题,只要能解决,再追加给你100分也可以。你现在给出的答案并不能帮我解决问题,如果是放到onclick里执行就不拿到这问了,那就太简单了,你说呢?!
persuit666 2011-11-02
  • 打赏
  • 举报
回复
给你个思路

onSubmit是表单上(也只能是表单)用的,提交表单前会触发
onClick是按钮等控件上用的,用来触发点击事件.

用作数据验证的时候,可以选择在submit按钮上的onclick中验证,可以在onsubmit中验证.但是从事件触发顺序上来说,onclick更早.顺序是:

用户点击按钮->onclick->如果onclick返回有效或未处理onclick则提交表单->onsubmit->如果onsubmit未处理或返回true,则提交,否则取消提交.

你可以在每个提交按钮上加上id和onclick="aaa(this.id)"
var bs="";//这个标识是哪个触发的form提交
function aaa(id)
{
bs=id;
}
到onsubmit判断哪个js里获取bs这个全局变量的值不就知道是哪个触发的了吗?
如果你分多的话 给加点分吧,哈哈!开玩笑。。。
wq664646973 2011-10-31
  • 打赏
  • 举报
回复
把你的html摆放出为看一下,然后再进行写js
persuit666 2011-10-31
  • 打赏
  • 举报
回复
那你为啥要弄多个submit按钮呢?
两种方法:
1.只留一个submit
2.标识这个submit,在beforeSubmit的方法里边处理是否是点击了那个submit.我不清楚 a, f, o这个3个参数是做什么用的,能不能取到触发事件的对象?就是这个submit
zhang_2007 2011-10-31
  • 打赏
  • 举报
回复
如果有人能帮忙解决问题,我追加60分。欢迎大家踊跃发言啊!
zhang_2007 2011-10-31
  • 打赏
  • 举报
回复
求 大侠 解答啊... ...
zhang_2007 2011-10-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wq664646973 的回复:]

把你的html摆放出为看一下,然后再进行写js
[/Quote]
不用摆前台的代码,主要的问题是这个页面的form表单有多个submit,点击任何一个submit都会触发beforesubmit后面的事件,求解。。。
zhang_2007 2011-10-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhoufeng0401 的回复:]

那你为啥要弄多个submit按钮呢?
两种方法:
1.只留一个submit
2.标识这个submit,在beforeSubmit的方法里边处理是否是点击了那个submit.我不清楚 a, f, o这个3个参数是做什么用的,能不能取到触发事件的对象?就是这个submit
[/Quote]
如何是一个submit,就简单了,但是真正做东西的时候怎么可能是一个呢,至少也是两个,一个提交,一个重置或取消啊,至于那三个参数我也不知道,我是粘贴的别人的代码,呵呵,我只是想在原有的基础上优化一下。嘿嘿
现在的问题是当有多个submit时 ,点击任何一个submit都会触发beforesubmit后面的事件,很无奈!求解
zhang_2007 2011-10-29
  • 打赏
  • 举报
回复
汗,咋就没人帮我解决问题呢?伤心了。
zhang_2007 2011-10-28
  • 打赏
  • 举报
回复
问题补充
[Quote=引用 1 楼 leehuat 的回复:]

CSS code

$('#uploadForm') 这个form的id不是唯一的吗
这和其他的submit有关系吗
不明白你什么意思
[/Quote]是form的id是唯一的,但是在form里的submit不是唯一的,就是说有两个或更多按钮,只让一个submit点击之后,执行beforeSubmit后的方法。
leehuat 2011-10-28
  • 打赏
  • 举报
回复

$('#uploadForm') 这个form的id不是唯一的吗
这和其他的submit有关系吗
不明白你什么意思

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧