当前位置: 代码迷 >> Web Service >> jQuery.Validate remote验证用户名是否重复 远程调用web服务失效解决方法
  详细解决方案

jQuery.Validate remote验证用户名是否重复 远程调用web服务失效解决方法

热度:876   发布时间:2012-01-20 18:53:53.0
jQuery.Validate remote验证用户名是否重复 远程调用web服务失效
最近使用jQuery.Validate客户端验证组件进行验证,在本机开发运行的时候似乎没有问题,但部署到服务器之后,就出现问题了。 remote验证不能成功执行。我是远程调用Web服务验证用户名是否存在,本人对jQuery.Validate组件不是很熟悉。需要说明的问题是部署到服务器后,从其他机器访问才会出现问题,如果本机,无论是localhost还是IP地址都没有异常!
想想是不是需要配置什么东东?或者是发布时有什么权限设置没有设置好?希望各位给出解决的办法,谢谢。
  为了让大家清楚该问题,我把问题用简化后代码呈现出来。
  <script type="text/javascript">
$().ready(function() {
// validate signup form on keyup and submit
$("#loginForm").validate({
focusCleanup: true,//表单提交时,焦点会指向第一个没有通过验证的域
debug: false,
rules: {
username: {
required: true,
stringCheck:true,
minlength:4,
maxlength: 20,
remote:{
type: "POST",
dataType:"xml",
async: false,
url: "WebService.asmx/CheckName",
data: {userName:function(){ return jQuery("#<%=username.ClientID %>").val();}},
dataFilter: function(dataXML) {
var result = new Object();
result.Result = jQuery(dataXML).find("Result").text();
result.Msg = jQuery(dataXML).find("Msg").text();
if (result.Result == "-1") {
result.Result = false;
return result;
}
else {
result.Result = result.Result == "1" ? true : false;
return result;
}
}
}
}

},
messages: {
username: {
required: "请输入用户名",
stringCheck:"用户名只能包括中文字、英文字母、数字和下划线",
minlength: "用户名不能少于4个字符",
maxlength: "用户名不能超过20个字符",
remote:"此用户名已经有人注册过"
 
}
}
});
});
  </script>

------解决方案--------------------
你的AJAX调用错了,不解释.
JScript code

$("#accounts").formValidator({
            onshow:"请输入用户名",
            onfocus:"用户名至少4个字符,最多10个字符",
            oncorrect:"该用户名可以注册"}).inputValidator({min:4,max:10,
            onerror:"用户名至少4个字符,最多10个字符"}).regexValidator({
            regexp:"username",
            datatype:"enum",
            onerror:"用户名格式不正确"})
        .ajaxValidator({
        type : "get",
        url : "Enroll.ashx",
        datatype :"html",
        cache:false,
        success : function(data){    
           //alert(data);
            if( data == "fail" )
            {
               return false;
            }
            else
            {
                return true;
            }
        },
        buttons: $("#Button"),
        error: function(){alert("服务器没有返回数据,可能服务器忙,请重试");},
        onerror : "该用户名不可用,请更换用户名",
        onwait : "正在对用户名进行合法性校验,请稍候..."
    }) 
  相关解决方案