php后端验证遇到的问题,php laravel 后端验证 validate 与 前端验证,jquery.validate插件 不能同时使用的问题...

今天在搞验证这块时,遇到个问题:服务器端的验证和前端的验证表面上不能共存的问题,直接贴代码

这是前端jquery.validate验证

$("#form-member-add").validate({

rules:{

username:{

required:true,

minlength:2,

maxlength:16},

realname:{

required:true,

},

password: {

required:true,

minlength:5},

password_confirmation: {

required:true,

equalTo:"#password"},

sex:{

required:true,

},

phone:{

required:true,

isMobile:true,

},

email:{

required:true,

email:true,

},

},

messages:{

username:{

required:‘用户名都不写,想干啥?‘,

minlength:"用户名至少由两个字母组成",

maxlength:"写那么多记得住吗?最多16位"},

realname:{

required:‘填姓名 啊‘,

},

password:{

required:‘密码都不写,想干啥?‘,

minlength:"密码至少由五个字母组成",

},

password_confirmation: {

required:‘必填的‘,

equalTo:"两次密码不一致"},

sex:{

required:‘必填‘,

},

phone:{

required:‘必填‘,

isMobile:‘请输入正确的电话格式‘,

},

email:{

required:‘必填‘,

email:‘请输入正确的邮箱格式‘,

},

},

onkeyup:false,

focusCleanup:true,

success:"valid",

submitHandler:function(form){var index =parent.layer.getFrameIndex(window.name);

$(form).ajaxSubmit(

{

success:function(data) {if (data.status === 10001) {

parent.$(‘.btn-refresh‘).click();

parent.layer.close(index);

console.log(data);

}

},

error:function(data) {

alert(‘添加失败‘);

console.log(data);//parent.$(‘.btn-refresh‘).click();//parent.layer.close(index);

}

}

);

}

});

这是后端laravel的代码及验证

$data1=$this->validate($request,[‘username‘=>‘required|unique:users,username‘,

‘realname‘=>‘required‘,

‘password‘=>‘required|confirmed‘,

‘email‘=>‘required‘,

‘phone‘=>‘phone‘]);$data= $request->except([‘_token‘,‘password_confirmation‘]);

User::create($data);return response()->json([‘data‘=>$data1,‘status‘=>10001]);

当表单提交时,首先会触发前端的验证,前端验证通过后,进行后端验证,疑惑的地方是:前端验证成功,后端基本没啥情况,但username有个重名验证,即唯一验证,比如数据库已经有了username=admin,此时再插入username=admin时,前端验证是通过的,可后端的不会通过,它不通过它也不会将错误信息打印到页面中(我单独验证了前端验证及后端验证,即注释前端,测试后端,或者注释后端,测试前端,都没问题,但他两同时开启时,后端验证的错误信息就不打印到前端页面上了)

如图,只开启后端验证:

e7b25ccf36fb25a06e87783e60bfe4bd.png

重名验证:

2e7ab501dfa779fc421e45cd680ab3b6.png

注释后端代码,开启前端验证:

3f69225e00e94f61ff6c631676718c08.png

这是为什么呢?

我尝试了接收validate的返回值,进行打印,是个对象,对象中有错误信息

如图:

90c2b3c7b902818dff898ccac3453534.png

在responseText中的就是错误信息,

The given data was invalid.

给定的数据无效。

到这里,就卡死了,求救大佬!!!

我该如何让它在前端验证通过的时候后端不通过的时候把后端的错误信息打印出来??

时ajax的原因吗?是的话如何解决呢?

原文:https://www.cnblogs.com/zqblog1314/p/12637580.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值