formvalidator4.1.3 - 校验时不能自定义向后台传值的BUG问题

需求如下:

用户名:<input type="text" name="reguser.username" id="username">


用户名可以是[b]中文[/b]、英文及数字。

正确的代码如下[b](重点注意第七行的data传值)[/b]:

$("#username").formValidator({onShow:"请输入用户名,汉字、英文字母、数字,4-20个字符!",onFocus:"请您记住填写的用户名,以后登录时需要用到。",onCorrect:"该用户名可以注册!"})
.inputValidator({min:4,max:20,onError:"用户名长度不对,请重新输入!"})
.ajaxValidator({
dataType : "html",
async : true,
type : 'post',
data:{'usera':function(){return $("#username").val()}},
url: "usercheckusername.html" ,
success : function(data, textStatus){
if(data.indexOf("true")>-1){return true;}
if(data.indexOf("false")>-1){return "该用户名不可用,请更换用户名";}
return "服务器没有返回数据,可能服务器忙,请重试"
},
error: function(){alert("服务器没有返回数据,可能服务器忙,请重试");},
onerror : "该用户名已经存在,请更换用户名",
onwait : "正在对用户名进行合法性校验,请稍候…"
});


问题:
本来不加data时,[b]只要输中文的时候[/b](不管type是get还是post),在chrome和IE浏览器下,后台就接收不到reguser.getUsername的值,报null。(火孤倒是都正常的)

于是想到用url带参的方式来传值
即:url: "usercheckusername.html?username="+$("#username").val() ,
但后台依然接收不到数据。

转而想到用data属性传值
即:data:'usera='+ $("#username").val(),
但发现后台接收到usera的值,依然为空。(如果不用该校验框架,这么写肯定没错的。)

随即去网上查阅了很多资料,不知道这里是不是一个BUG,改为
[b][color=red]data:{'usera':function(){return $("#username").val()}},[/color] [/b]
就可以了,而type:'post'是因为有中文,用get得自己转码,不然会乱码。

------------------------
后记:不知道这是不是formvalidator4.1.3版本的问题,还是所有的formvalidator都有此问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值