jquery+CustomValidator验证用户名已存在问题

Microtigers 2009-07-21 04:12:32
用jquery+CustomValidator验证用户名已存在问题
页面js文件
<script language="javascript" src="css/jquery.js"></script>
<script language="javascript">
function UserExistValidate()
{
var name= document.getElementById("username").value;
var param={name:name};
$.get("ajax/CheckName.ashx",param,function(data){
if(data==1)
{
arguments[1].IsValid=true;

}else{
arguments[1].IsValid=false;

}
});
}
</script>


<asp:TextBox ID="username" runat="server" CssClass="ls"></asp:TextBox>
<asp:CustomValidator ID="IsName" runat="server" Display="Dynamic" ErrorMessage="用户名已存在" ClientValidationFunction="UserExistValidate"></asp:CustomValidator>
<asp:Button ID="ok" runat="server" Text="确认" CssClass="cmd" onclick="ok_Click" />

namespace wedding.ajax
{
/// <summary>
/// $codebehindclassname$ 的摘要说明
/// </summary>
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class CheckName : IHttpHandler
{

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string name=context.Request.QueryString["name"].ToString();
if (name == "admin")
{
context.Response.Write("0"); //已经存在
}else {
context.Response.Write("1");
}
}

public bool IsReusable
{
get
{
return false;
}
}
}
}

总是不验证,直接就提交了.没有提示错误
...全文
194 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
owenxin26 2009-07-23
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 microtigers 的回复:]
if(data=="1")
如果返回的是个JSON格式的怎么把data转化成字符串
然后在if(data=="1")
做判断
[/Quote]

如果用的是ASP.NET 3.5, 返回值data后面加个d, data.d
因为3.5版的ASP.NET AJAX会将返回的JSON对象嵌套在一个名为'd'的父级对象里面。

如果是asp.net 2.0 直接用data。
Pig23 2009-07-22
  • 打赏
  • 举报
回复
都ajax了还用服务端控件
<input type="button" value="验证" onclick="UserExistValidate();" />
weir55 2009-07-22
  • 打赏
  • 举报
回复
下个断点
或者用HTTPWATCH看下请求页面和数据是否正确
Microtigers 2009-07-22
  • 打赏
  • 举报
回复
if(data=="1")
如果返回的是个JSON格式的怎么把data转化成字符串
然后在if(data=="1")
做判断
Microtigers 2009-07-22
  • 打赏
  • 举报
回复
owenxin26
我快崩溃了.能留个QQ,交流一下吗
Microtigers 2009-07-22
  • 打赏
  • 举报
回复
"{name:" + name + "}"
改成这样也不行
Microtigers 2009-07-22
  • 打赏
  • 举报
回复
ding
saisky 2009-07-21
  • 打赏
  • 举报
回复
断点在验证服务端看下跟没跟进去
问题应该是出在那段js里
ld1201 2009-07-21
  • 打赏
  • 举报
回复
var param={name:name};
改为
var param="{name:"+name+"}";
owenxin26 2009-07-21
  • 打赏
  • 举报
回复
再更正一下,"{name:" + name + "}"

name是变量,刚才没看到
owenxin26 2009-07-21
  • 打赏
  • 举报
回复
补充给楼上

LZ用的这个就是Ajax方式验证判断,思路是对的,$.get是jQuery调用Ajax的方法之一。
owenxin26 2009-07-21
  • 打赏
  • 举报
回复
把var param={name:name}

改成

var param="{name:name}";

如果还不行,改成

var param="{'name':name}";


因为jQuery在调用ajax的时候会自动序列化JSON对象,而ASP.NET的Service只接受原始的JSON格式,所以需要把JSON在传值的时候改为string,确保传到asp.net那边去的时候是原始格式。

参考文章:
http://encosia.com/2008/06/05/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax/
cwaspnet 2009-07-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fgmis 的回复:]
做的太麻烦了呀

直接用个ajax 来写,不要那么多控件来实现



[/Quote]是啊,用个Ajax方便多了
Microtigers 2009-07-21
  • 打赏
  • 举报
回复
好像是jquery出问题了.具体不知道哪里有问题.
fgmis 2009-07-21
  • 打赏
  • 举报
回复
参考这个网页的注册效果
fgmis 2009-07-21
  • 打赏
  • 举报
回复
做的太麻烦了呀

直接用个ajax 来写,不要那么多控件来实现


cpp2017 2009-07-21
  • 打赏
  • 举报
回复
现在到底是IsValid有问题还是你的jquery验证时出问题了?
另,你的控件应该有个ControlToValid属性。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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