您的位置:首页 > Web前端 > JQuery

jquery插件formValidator的ajaxValidator传参数问题

2014-01-13 10:41 381 查看
最近在用formValidator插件,遇到一个问题。当我想用ajaxValidator的url传参数时,$("#tbName").val()、document.getElementById("tbName").value$("#tbName").attr("value")都不行,后来终于找到原因了,其实是$(document).ready(function(){的原因,所以总是取到name=“”值,那怎么办呢?

查找了很多资料,发现原来formValidator本事已经对url做处理了,默认把tbName这个ID作为参数名,

只要在checkuser.ashx调用context.Request.Params["tbName"].ToString().Trim()取值就行,已经验证过,此方法一定有效,示例代码如下:

JavaScript:

$(document).ready(function(){
$.formValidator.initConfig({formID:"form1",theme:"baidu",debug:false,submitOnce:true,
onError:function(msg,obj,errorlist){
$.map(errorlist,function(msg){

});
alert(msg);
},
ajaxPrompt:'有数据正在异步验证,请稍等...'
});
$("#tbName").formValidator({onShow:"请输入用户名",onFocus:"用户名至少5个字符,最多10个字符",onCorrect:"该用户名可以注册"}).inputValidator({min:5,max:10,onError:"你输入的用户名非法,请确认"})//.regexValidator({regExp:"username",dataType:"enum",onError:"用户名格式不正确"})
.ajaxValidator({
dataType:"json",
async:true,
url:"action/checkuser.ashx?command=check&key="+$("#tbName").attr("value"),
success:function(data){
if(data=="1")returntrue;
if(data=="0")returnfalse;
returnfalse;
},
buttons:$("#button"),
error:function(jqXHR,textStatus,errorThrown){alert("服务器没有返回数据,可能服务器忙,请重试"+errorThrown);},
onError:"该用户名已注册,请更换用户名",
onWait:"正在对用户名进行合法性校验,请稍候..."
}).defaultPassed();
});


checkuser.ashx:

publicvoidProcessRequest(HttpContextcontext){
switch(context.Request.Params["command"].ToString())
{
case"check":CheckUser(context);break;
}
}

publicvoidCheckUser(HttpContextcontext)
{
stringres="1";
StringBuilderstrBul=newStringBuilder();
stringname=context.Request.Params["tbName"].ToString().Trim();
//注:context.Request.Params["key"].ToString()为“”,此传值无效。
if(name.Equals("12345a")){res="0";}
strBul.Append(res);
context.Response.Write(strBul);
}


注意:此方法只能在this.ID即本控件(这里是$("#tbName")),才能在ashx里动态取值。


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: