BootstrapValidator的Remote远程验证

在使用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;
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章