Javascript jquery-form-validate 异步提交表单和进行后台验证的操作方式
一般来说,表单的异步验证,要不就自己写一个,这里使用jquery validation表单验证,实现起来很简单的
先看下样式表和js脚本
<style> label.error{ display: none; width: 0px; } .login .log input.error, .login .log select.error,.login .log textarea.error{ border: 2px solid red; background-color: #FFFFD5; margin: 0px; color: red; } </style> <script src="/js/jquery-validation/dist/jquery.validate.js" type="text/javascript"></script> <script src="/js/jquery-validation/lib/jquery.form.js" type="text/javascript"></script> <script type="text/javascript"> $(function(){ //去掉提示 jQuery.validator.messages.required = ""; $('form#login').validate({ borderColorOnError : '#FFF', invalidHandler: function(e, validator) { //错误个数 var errors = validator.numberOfInvalids(); if (errors) { $("label.error").css('display',"none"); } else { $("label.error").hide(); } }, submitHandler: function(form) { $(form).ajaxSubmit({ beforeSend:function(){ show_loading_body(); }, complete:function(){ show_loading_body(); }, success:function(data){ data = JSON.parse(data); if(data.url != undefined && data.status != undefined && data.status == 'ok'){ $('.jgCode').show(); }else{ } } }); } }); }); </script>
跟ajax的使用方式基本上是一致的
function show_loading_body() { if ($("#layer_loading").length > 0) { $("#layer_loading").css("display") == 'none' ? $("#layer_loading").css( 'display', '') : $("#layer_loading").css('display', 'none'); } else { var yScroll = document.documentElement.scrollTop; var screenheight = document.documentElement.clientHeight; var t = yScroll + screenheight - 240; //alert(t); //if (t > document.body.clientHeight) { // t = document.body.clientHeight; //} $("body") .append( '<div id="layer_loading" style="position:absolute;z-index:1001;" id="layer_loading"><img src="/images/public/load.gif" title="loading……" alt="loading……"/> loading……</div>'); $("#layer_loading").css("left", (($(document).width()) / 2 - (parseInt(200) / 2)) + "px").css( "top", t + "px"); $("#layer_loading").show(); } }
后台的验证,我这里说一下我的验证方式。结合ajax和非ajax的一个整合操作(PHP)
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){ echo json_encode(array('status'=>'dsd')); exit; }else{ if(!ckgdcode($checkcode)){ redirect ( "您输入的验证码有误!请返回重新登陆!", url_reset('login')."?url=".$return_url ); exit; } }
这样子的话,就不需要在另外传递参数来判断了。
版权声明
由 durban创作并维护的 Gowhich博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。
本文首发于 博客( https://www.gowhich.com ),版权所有,侵权必究。
本文永久链接: https://www.gowhich.com/blog/569
版权声明
由 durban创作并维护的 Gowhich博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。
本文首发于 Gowhich博客( https://www.gowhich.com ),版权所有,侵权必究。
本文永久链接: https://www.gowhich.com/blog/569