最近使用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 : "正在对用户名进行合法性校验,请稍候..." })