BootstrapValidator的Remote远程验证

来源:互联网 发布:真维斯淘宝女装模特 编辑:程序博客网 时间:2024/06/08 21:48

在使用BootstrapValidator的remote的时候,遇到了两个问题;
1.data传递一直为null
2.后台返回值为true的时候,前台还是按照false处理

第一个问题:
原代码:

 usertelephone: {//验证input项:验证规则                  message: 'The username is not valid',                  validators: {                      notEmpty: {//非空验证:提示消息                          message: '手机号不能为空'                      },                      stringLength: {                          min: 11,                          max: 11,                          message: '手机号必须为11位'                      },                      threshold: 11, //有6字符以上才发送ajax请求,(input中输入一个字符,插件会向服务器发送一次,设置限制,6字符以上才开始)                      remote: {//ajax验证。server result:{"valid",true or false} 向服务发送当前input name值,获得一个json数据。例表示正确:{"valid",true}                            url: '/Login/CheckUserTelephoneEmail',//验证地址                          data:{userTelephone:$('input[name="usertelephone"]').val() }                          },message: '手机号已被注册',//提示消息                          delay: 2000,//每输入一个字符,就发ajax请求,服务器压力还是太大,设置2秒发送一次ajax(默认输入一个字符,提交一次,服务器压力太大)                          type: 'POST'//请求方式                      },

原因:
因为在获取数据的时候并不是实时获取的,而是按照一开始页面加载时获取的,所以显然内容为空,传到后台的数据也就是空的。
解决方法:
使用函数获取所需要的值

 data:{userTelephone:function() {                              return $('input[name="usertelephone"]').val() }                          },

第二个问题:
官方文档并没有给出后台需要返回给前台的值有什么要求,经过我的烦恼和测试。
传到前台的必须是Json格式,而且Json格式的内容必须是{valid = true}
原代码:

 public JsonResult CheckUserTelephoneEmail(string userTelephone)        {            JsonResult ret = new JsonResult();            ret.JsonRequestBehavior = JsonRequestBehavior.AllowGet;            ret.Data = true;            UserContract contract = LoadService<IUserService>().GetUserContract(userTelephone);            if (contract != null)             //手机为空,可以用            {                ret.Data = false;            }            return ret;        }

原因:
JsonReslut.data的内容不是valid=true
解决方法:

//先增加一个内部类 internal class str        {            public bool valid;        }public JsonResult CheckUserTelephoneEmail(string userTelephone)        {            JsonResult ret = new JsonResult();            str hhh = new str() { valid = true };            ret.JsonRequestBehavior = JsonRequestBehavior.AllowGet;            UserContract contract = LoadService<IUserService>().GetUserContract(userTelephone);            if (contract != null)             //手机为空,可以用            {                hhh = new str() { valid = false };            }            ret.Data = hhh;            return ret;        }