用jquery提交单,并进行处理.

本文介绍如何利用Ajax和jQuery简化表单提交过程,通过示例代码展示正确的请求方式及处理方法,避免不必要的HTML标签返回,并提供后端处理技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前在.net中使用ajax的时候, 向后台发送了一个httpRequest请求,总是会返回一大串没有用的值,比如<!Document ..... 类似, 导致了在取到返回数据的时候,必需要用字符串处理函数处理一下. 现在想起来,那个时候还是学的不深,不能深深体会ajax的精髓. 之所以返回了一堆<body><head>是因为我请求的是一个aspx的页面, 做为一个页面,当然会有这些信息了.. 正确的方法是将请求发送到ashx文件中,这样返回的信息就不会有多余的了.

其实jquery提交表单很简单.
  1.         function SaveForm()
  2.         {
  3.             var form = $("#aspnetForm");
  4.             var action = form.attr("action");
  5.             var serializedForm = form.serialize();
  6.             $.post("serverPage.ashx",serializedForm,AutoSaveBack());
  7.         }
  8.         function AutoSaveBack()
  9.         {
  10.             alert('I come back');
  11.         }

aspnetForm是表单的名称, action是事先定义的要提交到的页面,在这个例子中其实可以忽略的. 将表单序列化,变成para1=xxx&para2=xxx&para3=xxx....的形式. 然后将这些数据提交到ashx文件中进行处理. AutoSaveBack是回调函数,可以将返回的结果进行处理.

后台的了获取方法如下:
  1. if (context.Request.HttpMethod == "POST")
  2.         {
  3.             string radio = context.Request["ctl00$ContentPlaceHolder1$RadioButtonList1"].ToString();
  4.             string text = context.Request["ctl00$ContentPlaceHolder1$TextBox1"].ToString();
  5.             string dropdown = context.Request["ctl00$ContentPlaceHolder1$DropDownList1"].ToString();
  6.         }
当然, 在这个例子中, 我还没有找到如何处理checkboxlist的方法, 似乎在操作checkboxlist的时候,只能按照前台生成的控件name来一个一个取. 但是这样太麻烦了.

P.S. 如果是Master页,要注意的是控件生成的时候,id和name会加上前缀, 你的表单的id,在实际生成的时候会变成aspnetForm,
这一点需要注意,而且在引用的时候
  1.     <script language="javascript" src='<%=ResolveUrl("~/js/jquery.js")%>' type="text/javascript"></script>
要这样引用,否则后台会取不到数据..我也不清楚原因. 一会要好好研究一下, 还有那个checkbox有没有更好的取值方法.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值