注册网页完整案例(jQuery Mobile、validate表单验证、ajax或post、php)

来源:互联网 发布:windows phone 10安卓 编辑:程序博客网 时间:2024/06/06 17:23

jQuery Mobile


jquery.validate表单验证完整案例



功能一:用户名检查是否存在(ajax、php方法取得)

功能二:自定义验证

              1、字符串检查:只能包括中文字、英文字母、数字和下划线;

              2、简单两数字相加的验证码验证




index.php代码

<?php //验证码   PHP获取随机数  $n1= rand(1, 9);//生成1-9随机数 $n2=rand(9, 1);//生成9-1随机数 $n=$n1+$n2; //echo randomkeys(4);?><!DOCTYPE html><html><head><meta charset="utf-8" /><title>求职者注册-孔夫子</title><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="http://apps.bdimg.com/libs/jquerymobile/1.4.5/jquery.mobile-1.4.5.min.css">  <script src="http://apps.bdimg.com/libs/jquery/1.10.2/jquery.min.js"></script>  <script src="http://apps.bdimg.com/libs/jquerymobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>  <script src="js/jquery.validate.js"></script>  <script src="http://static.runoob.com/assets/jquery-validation-1.14.0/dist/localization/messages_zh.js"></script>      <style>label.error {color: red;font-size: 16px;font-weight: normal;line-height: 1.4;margin-top: 0.5em;width: 100%;float: none;}@media screen and (orientation: portrait) {label.error {margin-left: 0;display: block;}}@media screen and (orientation: landscape) {label.error {display: inline-block;margin-left: 22%;}}em {color: red;font-weight: bold;padding-right: .25em;}</style></head><body>​<div data-role="page" id="pagereg"><?php include("user_top_menu.php");?>   <div data-role="main" class="ui-content" align="center">        <form id="user_reg" action="11.php" method="post">             <div class="ui-field-contain">                      <input type="hidden" name="action" value="login_user_reg">                      <input type="hidden" name="login" value="<?php echo $login?>">                      <input type="hidden" name="type" value="<?php echo $type?>">                      <input type="hidden" name="code2" value="<?php echo $n ?>">                                         <div class="layui-form-item">                       <label for="username" class="ui-hidden-accessible">用户名</label>                       <input type="text" name="username" id="username" placeholder="请输入用户名"  >                    </div>                    <div class="layui-form-item">                      <label class="ui-hidden-accessible" for="password">密码</label>                      <input type="password" name="password" id="password" placeholder="请输入密码"  >                    </div>                    <div class="layui-form-item">                      <label class="ui-hidden-accessible" for="password2">确认密码</label>                      <input type="password" name="password2" id="password2" placeholder="再次请输入密码" >                    </div>                    <div class="layui-form-item">                               <div class="ui-grid-a">                             <div class="ui-block-a">                                     <label class="ui-hidden-accessible" for="code">验证码</label>                                     <input type="text" name="code" id="code" placeholder="请输入验证码" >                             </div>                             <div class="ui-block-b" style="padding-top:0.2em; font-size:2em;">                               <?php echo $n1?> + <?php echo $n2?> =                             </div>                           </div>                    </div> <!--<span id="text">显示提交表单返回参数</span>-->                    <label for="agreement" style="color:#868585">同意《孔夫子用户服务协议》</label>                    <input type="checkbox" name="agreement" id="agreement" value="1">                      <div class="layui-form-item">                              <button lay-submit lay-filter="formDemo1" data-theme="b">求职者注册</button>                      </div>                                       <div class="layui-form-item" align="left" style="padding-top:0.8em;"><i class="iconfont"></i>已有帐号?<a href="index.php?login=" style="color:#FCA21A">马上登录</a></div>              </div>        </form>  </div><!--注册成功后弹出的提示窗口-->        <div data-role="popup" id="user_reg_success" class="ui-content" data-overlay-theme="b">              <a href="#" data-rel="back" class="ui-btn ui-corner-all ui-shadow ui-btn ui-icon-delete ui-btn-icon-notext ui-btn-right">关闭</a>               <p align="center" style="color:#FF0004">注册成功!</p>              <a href="user_login.php" class="ui-btn ui-btn-inline ui-shadow ui-corner-all ui-icon-home ui-btn-icon-left" data-rel="button">登录</a>              <a href="#" class="ui-btn ui-btn-inline ui-shadow ui-corner-all ui-icon-back ui-btn-icon-left" data-role="button" data-rel="back">返回</a>        </div> </div>     <script>$.validator.setDefaults({    submitHandler: function() {      //alert("提交事件!");  //form.submit();//提交表单   提交表单到另一个网页的做法      //用ajax提交表单    //显示正在加载中....//setTimeout('showLoader()', 100);//这里要延迟一下,直接调用无法显示加载器//显示加载器.for jQuery Mobile 1.2.0    function showLoader() {$.mobile.loading('show', {text: '正在注册中...', //加载器中显示的文字  textVisible: true, //是否显示文字  theme: 'b',        //加载器主题样式a-e  textonly: false,   //是否只显示文字  html: ""           //要显示的html内容,如图片等  });}//隐藏加载器.for jQuery Mobile 1.2.0  function hideLoader() {$.mobile.loading('hide');}  var username=$('#username').val();  var password=$('#password').val();  var action='user_reg';  $.ajax({type: "post",url: "03.php",data: {username:username,password:password,action:action},//提交到demo.php的数据dataType: "json",//回调函数接收数据的数据格式success: function(msg){  var data='';  if(msg!=''){data = eval("("+msg+")");  }  if(data.su=='success'){    hideLoader();//隐藏正在加载中的层  $("#user_reg_success").popup('open');//注册成功后,弹出窗口层  //$.mobile.changePage("index.php","slidedown", false, false);//注册成功后,转跳到登录网页  //$('#text').html("用户名为:" + data.username + ",密码为:" + data.password + ",成功:" + data.su);  }else{  $('#text').html("用户名为:" + data.username + ",密码为:" + data.password + ",失败:" + data.su);  }  console.log(data);},error:function(msg){console.log(msg);}  });    }});$().ready(function() {// 在键盘按下并释放及提交后验证提交表单  $("#user_reg").validate({    rules: {      username: {        required: true,        //minlength: 3,byteRangeLength:[3,15],stringCheck:true,                remote:{                    type:"POST",                    url:"ck_user.php?action=ck_user", //请求地址                    data:{                        username:function(){ return $("#username").val(); }                    }                }      },      password: {        required: true,        minlength: 6      },      password2: {        required: true,        minlength: 6,        equalTo: "#password"//这里必需填写第一个密码      },//      "topic[]": {//        required: "#newsletter:checked",//        minlength: 2//      },      //code: "required",      code: {        required: true,        codeLength: <?php echo $n ?>,      },  agreement: "required"    },    messages: {      username: {        required: "请输入用户名",        //minlength: "用户名必需由{0}个字母组成",byteRangeLength: "用户名输入的值在3-15个字节之间(一个中文字算2个字节)",remote:"用户名已存在",stringCheck:"只能包括中文字、英文字母、数字和下划线"      },      password: {        required: "请输入密码",        minlength: "密码长度不能小于6个字母"      },      password2: {        required: "请输入密码",        minlength: "密码长度不能小于6个字母",        equalTo: "两次密码输入不一致"      }, // code: "请输入验证码",      code: {        required: "请输入验证码",        codeLength: "验证码错误"      },      agreement: "请接受我们的声明",      //topic: "请选择两个主题"    },errorPlacement: function( error, element ) {error.insertAfter( element.parent() );}});});</script></body></html>







jquery.validate.js代码是用版本是 1.15.0
在官网上下载:https://jqueryvalidation.org/

加入自定义验证
// 字符验证 stringCheck: function( value, element ) {//return this.optional( element ) || /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test( value );return this.optional(element) || /^[\u0391-\uFFE5\w]+$/.test(value); //只能包括中文字、英文字母、数字和下},// 验证字符长度  请确保输入的值在3-15个字节之间(一个中文字算2个字节)byteRangeLength: function( value, element, param ) {//return this.optional( element ) || value <= param;var length = value.length; for(var i = 0; i < value.length; i++){ if(value.charCodeAt(i) > 127){ length++; } } return this.optional(element) || ( length >= param[0] && length <= param[1] ); },// 验证码验证 不相等不能提交codeLength: function( value, element, param ) {return this.optional( element ) || Number(value) === Number(param);},

// 字符验证  只能是中文字stringCheck_str: function( value, element ) {//return this.optional( element ) || /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test( value );return this.optional(element) || /^[\u4e00-\u9fa5]+$/.test(value); },

                //邮箱格式验证email: function( value, element ) {//return this.optional( element ) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( value );return this.optional( element ) || /(^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$)/.test( value );},






jquery.validate.js代码
/*! * jQuery Validation Plugin v1.15.0 * * http://jqueryvalidation.org/ * * Copyright (c) 2016 Jörn Zaefferer * Released under the MIT license */(function( factory ) {if ( typeof define === "function" && define.amd ) {define( ["jquery"], factory );} else if (typeof module === "object" && module.exports) {module.exports = factory( require( "jquery" ) );} else {factory( jQuery );}}(function( $ ) {$.extend( $.fn, {// http://jqueryvalidation.org/validate/validate: function( options ) {// If nothing is selected, return nothing; can't chain anywayif ( !this.length ) {if ( options && options.debug && window.console ) {console.warn( "Nothing selected, can't validate, returning nothing." );}return;}// Check if a validator for this form was already createdvar validator = $.data( this[ 0 ], "validator" );if ( validator ) {return validator;}// Add novalidate tag if HTML5.this.attr( "novalidate", "novalidate" );validator = new $.validator( options, this[ 0 ] );$.data( this[ 0 ], "validator", validator );if ( validator.settings.onsubmit ) {this.on( "click.validate", ":submit", function( event ) {if ( validator.settings.submitHandler ) {validator.submitButton = event.target;}// Allow suppressing validation by adding a cancel class to the submit buttonif ( $( this ).hasClass( "cancel" ) ) {validator.cancelSubmit = true;}// Allow suppressing validation by adding the html5 formnovalidate attribute to the submit buttonif ( $( this ).attr( "formnovalidate" ) !== undefined ) {validator.cancelSubmit = true;}} );// Validate the form on submitthis.on( "submit.validate", function( event ) {if ( validator.settings.debug ) {// Prevent form submit to be able to see console outputevent.preventDefault();}function handle() {var hidden, result;if ( validator.settings.submitHandler ) {if ( validator.submitButton ) {// Insert a hidden input as a replacement for the missing submit buttonhidden = $( "<input type='hidden'/>" ).attr( "name", validator.submitButton.name ).val( $( validator.submitButton ).val() ).appendTo( validator.currentForm );}result = validator.settings.submitHandler.call( validator, validator.currentForm, event );if ( validator.submitButton ) {// And clean up afterwards; thanks to no-block-scope, hidden can be referencedhidden.remove();}if ( result !== undefined ) {return result;}return false;}return true;}// Prevent submit for invalid forms or custom submit handlersif ( validator.cancelSubmit ) {validator.cancelSubmit = false;return handle();}if ( validator.form() ) {if ( validator.pendingRequest ) {validator.formSubmitted = true;return false;}return handle();} else {validator.focusInvalid();return false;}} );}return validator;},// http://jqueryvalidation.org/valid/valid: function() {var valid, validator, errorList;if ( $( this[ 0 ] ).is( "form" ) ) {valid = this.validate().form();} else {errorList = [];valid = true;validator = $( this[ 0 ].form ).validate();this.each( function() {valid = validator.element( this ) && valid;if ( !valid ) {errorList = errorList.concat( validator.errorList );}} );validator.errorList = errorList;}return valid;},// http://jqueryvalidation.org/rules/rules: function( command, argument ) {// If nothing is selected, return nothing; can't chain anywayif ( !this.length ) {return;}var element = this[ 0 ],settings, staticRules, existingRules, data, param, filtered;if ( command ) {settings = $.data( element.form, "validator" ).settings;staticRules = settings.rules;existingRules = $.validator.staticRules( element );switch ( command ) {case "add":$.extend( existingRules, $.validator.normalizeRule( argument ) );// Remove messages from rules, but allow them to be set separatelydelete existingRules.messages;staticRules[ element.name ] = existingRules;if ( argument.messages ) {settings.messages[ element.name ] = $.extend( settings.messages[ element.name ], argument.messages );}break;case "remove":if ( !argument ) {delete staticRules[ element.name ];return existingRules;}filtered = {};$.each( argument.split( /\s/ ), function( index, method ) {filtered[ method ] = existingRules[ method ];delete existingRules[ method ];if ( method === "required" ) {$( element ).removeAttr( "aria-required" );}} );return filtered;}}data = $.validator.normalizeRules($.extend({},$.validator.classRules( element ),$.validator.attributeRules( element ),$.validator.dataRules( element ),$.validator.staticRules( element )), element );// Make sure required is at frontif ( data.required ) {param = data.required;delete data.required;data = $.extend( { required: param }, data );$( element ).attr( "aria-required", "true" );}// Make sure remote is at backif ( data.remote ) {param = data.remote;delete data.remote;data = $.extend( data, { remote: param } );}return data;}} );// Custom selectors$.extend( $.expr[ ":" ], {// http://jqueryvalidation.org/blank-selector/blank: function( a ) {return !$.trim( "" + $( a ).val() );},// http://jqueryvalidation.org/filled-selector/filled: function( a ) {var val = $( a ).val();return val !== null && !!$.trim( "" + val );},// http://jqueryvalidation.org/unchecked-selector/unchecked: function( a ) {return !$( a ).prop( "checked" );}} );// Constructor for validator$.validator = function( options, form ) {this.settings = $.extend( true, {}, $.validator.defaults, options );this.currentForm = form;this.init();};// http://jqueryvalidation.org/jQuery.validator.format/$.validator.format = function( source, params ) {if ( arguments.length === 1 ) {return function() {var args = $.makeArray( arguments );args.unshift( source );return $.validator.format.apply( this, args );};}if ( params === undefined ) {return source;}if ( arguments.length > 2 && params.constructor !== Array  ) {params = $.makeArray( arguments ).slice( 1 );}if ( params.constructor !== Array ) {params = [ params ];}$.each( params, function( i, n ) {source = source.replace( new RegExp( "\\{" + i + "\\}", "g" ), function() {return n;} );} );return source;};$.extend( $.validator, {defaults: {messages: {},groups: {},rules: {},errorClass: "error",pendingClass: "pending",validClass: "valid",errorElement: "label",focusCleanup: false,focusInvalid: true,errorContainer: $( [] ),errorLabelContainer: $( [] ),onsubmit: true,ignore: ":hidden",ignoreTitle: false,onfocusin: function( element ) {this.lastActive = element;// Hide error label and remove error class on focus if enabledif ( this.settings.focusCleanup ) {if ( this.settings.unhighlight ) {this.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass );}this.hideThese( this.errorsFor( element ) );}},onfocusout: function( element ) {if ( !this.checkable( element ) && ( element.name in this.submitted || !this.optional( element ) ) ) {this.element( element );}},onkeyup: function( element, event ) {// Avoid revalidate the field when pressing one of the following keys// Shift       => 16// Ctrl        => 17// Alt         => 18// Caps lock   => 20// End         => 35// Home        => 36// Left arrow  => 37// Up arrow    => 38// Right arrow => 39// Down arrow  => 40// Insert      => 45// Num lock    => 144// AltGr key   => 225var excludedKeys = [16, 17, 18, 20, 35, 36, 37,38, 39, 40, 45, 144, 225];if ( event.which === 9 && this.elementValue( element ) === "" || $.inArray( event.keyCode, excludedKeys ) !== -1 ) {return;} else if ( element.name in this.submitted || element.name in this.invalid ) {this.element( element );}},onclick: function( element ) {// Click on selects, radiobuttons and checkboxesif ( element.name in this.submitted ) {this.element( element );// Or option elements, check parent select in that case} else if ( element.parentNode.name in this.submitted ) {this.element( element.parentNode );}},highlight: function( element, errorClass, validClass ) {if ( element.type === "radio" ) {this.findByName( element.name ).addClass( errorClass ).removeClass( validClass );} else {$( element ).addClass( errorClass ).removeClass( validClass );}},unhighlight: function( element, errorClass, validClass ) {if ( element.type === "radio" ) {this.findByName( element.name ).removeClass( errorClass ).addClass( validClass );} else {$( element ).removeClass( errorClass ).addClass( validClass );}}},// http://jqueryvalidation.org/jQuery.validator.setDefaults/setDefaults: function( settings ) {$.extend( $.validator.defaults, settings );},messages: {required: "This field is required.",remote: "Please fix this field.",email: "Please enter a valid email address.",url: "Please enter a valid URL.",date: "Please enter a valid date.",dateISO: "Please enter a valid date ( ISO ).",number: "Please enter a valid number.",digits: "Please enter only digits.",equalTo: "Please enter the same value again.",maxlength: $.validator.format( "Please enter no more than {0} characters." ),minlength: $.validator.format( "Please enter at least {0} characters." ),rangelength: $.validator.format( "Please enter a value between {0} and {1} characters long." ),range: $.validator.format( "Please enter a value between {0} and {1}." ),max: $.validator.format( "Please enter a value less than or equal to {0}." ),min: $.validator.format( "Please enter a value greater than or equal to {0}." ),step: $.validator.format( "Please enter a multiple of {0}." )},autoCreateRanges: false,prototype: {init: function() {this.labelContainer = $( this.settings.errorLabelContainer );this.errorContext = this.labelContainer.length && this.labelContainer || $( this.currentForm );this.containers = $( this.settings.errorContainer ).add( this.settings.errorLabelContainer );this.submitted = {};this.valueCache = {};this.pendingRequest = 0;this.pending = {};this.invalid = {};this.reset();var groups = ( this.groups = {} ),rules;$.each( this.settings.groups, function( key, value ) {if ( typeof value === "string" ) {value = value.split( /\s/ );}$.each( value, function( index, name ) {groups[ name ] = key;} );} );rules = this.settings.rules;$.each( rules, function( key, value ) {rules[ key ] = $.validator.normalizeRule( value );} );function delegate( event ) {var validator = $.data( this.form, "validator" ),eventType = "on" + event.type.replace( /^validate/, "" ),settings = validator.settings;if ( settings[ eventType ] && !$( this ).is( settings.ignore ) ) {settings[ eventType ].call( validator, this, event );}}$( this.currentForm ).on( "focusin.validate focusout.validate keyup.validate",":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], " +"[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], " +"[type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], " +"[type='radio'], [type='checkbox'], [contenteditable]", delegate )// Support: Chrome, oldIE// "select" is provided as event.target when clicking a option.on( "click.validate", "select, option, [type='radio'], [type='checkbox']", delegate );if ( this.settings.invalidHandler ) {$( this.currentForm ).on( "invalid-form.validate", this.settings.invalidHandler );}// Add aria-required to any Static/Data/Class required fields before first validation// Screen readers require this attribute to be present before the initial submission http://www.w3.org/TR/WCAG-TECHS/ARIA2.html$( this.currentForm ).find( "[required], [data-rule-required], .required" ).attr( "aria-required", "true" );},// http://jqueryvalidation.org/Validator.form/form: function() {this.checkForm();$.extend( this.submitted, this.errorMap );this.invalid = $.extend( {}, this.errorMap );if ( !this.valid() ) {$( this.currentForm ).triggerHandler( "invalid-form", [ this ] );}this.showErrors();return this.valid();},checkForm: function() {this.prepareForm();for ( var i = 0, elements = ( this.currentElements = this.elements() ); elements[ i ]; i++ ) {this.check( elements[ i ] );}return this.valid();},// http://jqueryvalidation.org/Validator.element/element: function( element ) {var cleanElement = this.clean( element ),checkElement = this.validationTargetFor( cleanElement ),v = this,result = true,rs, group;if ( checkElement === undefined ) {delete this.invalid[ cleanElement.name ];} else {this.prepareElement( checkElement );this.currentElements = $( checkElement );// If this element is grouped, then validate all group elements already// containing a valuegroup = this.groups[ checkElement.name ];if ( group ) {$.each( this.groups, function( name, testgroup ) {if ( testgroup === group && name !== checkElement.name ) {cleanElement = v.validationTargetFor( v.clean( v.findByName( name ) ) );if ( cleanElement && cleanElement.name in v.invalid ) {v.currentElements.push( cleanElement );result = result && v.check( cleanElement );}}} );}rs = this.check( checkElement ) !== false;result = result && rs;if ( rs ) {this.invalid[ checkElement.name ] = false;} else {this.invalid[ checkElement.name ] = true;}if ( !this.numberOfInvalids() ) {// Hide error containers on last errorthis.toHide = this.toHide.add( this.containers );}this.showErrors();// Add aria-invalid status for screen readers$( element ).attr( "aria-invalid", !rs );}return result;},// http://jqueryvalidation.org/Validator.showErrors/showErrors: function( errors ) {if ( errors ) {var validator = this;// Add items to error list and map$.extend( this.errorMap, errors );this.errorList = $.map( this.errorMap, function( message, name ) {return {message: message,element: validator.findByName( name )[ 0 ]};} );// Remove items from success listthis.successList = $.grep( this.successList, function( element ) {return !( element.name in errors );} );}if ( this.settings.showErrors ) {this.settings.showErrors.call( this, this.errorMap, this.errorList );} else {this.defaultShowErrors();}},// http://jqueryvalidation.org/Validator.resetForm/resetForm: function() {if ( $.fn.resetForm ) {$( this.currentForm ).resetForm();}this.invalid = {};this.submitted = {};this.prepareForm();this.hideErrors();var elements = this.elements().removeData( "previousValue" ).removeAttr( "aria-invalid" );this.resetElements( elements );},resetElements: function( elements ) {var i;if ( this.settings.unhighlight ) {for ( i = 0; elements[ i ]; i++ ) {this.settings.unhighlight.call( this, elements[ i ],this.settings.errorClass, "" );this.findByName( elements[ i ].name ).removeClass( this.settings.validClass );}} else {elements.removeClass( this.settings.errorClass ).removeClass( this.settings.validClass );}},numberOfInvalids: function() {return this.objectLength( this.invalid );},objectLength: function( obj ) {/* jshint unused: false */var count = 0,i;for ( i in obj ) {if ( obj[ i ] ) {count++;}}return count;},hideErrors: function() {this.hideThese( this.toHide );},hideThese: function( errors ) {errors.not( this.containers ).text( "" );this.addWrapper( errors ).hide();},valid: function() {return this.size() === 0;},size: function() {return this.errorList.length;},focusInvalid: function() {if ( this.settings.focusInvalid ) {try {$( this.findLastActive() || this.errorList.length && this.errorList[ 0 ].element || [] ).filter( ":visible" ).focus()// Manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find.trigger( "focusin" );} catch ( e ) {// Ignore IE throwing errors when focusing hidden elements}}},findLastActive: function() {var lastActive = this.lastActive;return lastActive && $.grep( this.errorList, function( n ) {return n.element.name === lastActive.name;} ).length === 1 && lastActive;},elements: function() {var validator = this,rulesCache = {};// Select all valid inputs inside the form (no submit or reset buttons)return $( this.currentForm ).find( "input, select, textarea, [contenteditable]" ).not( ":submit, :reset, :image, :disabled" ).not( this.settings.ignore ).filter( function() {var name = this.name || $( this ).attr( "name" ); // For contenteditableif ( !name && validator.settings.debug && window.console ) {console.error( "%o has no name assigned", this );}// Set form expando on contenteditableif ( this.hasAttribute( "contenteditable" ) ) {this.form = $( this ).closest( "form" )[ 0 ];}// Select only the first element for each name, and only those with rules specifiedif ( name in rulesCache || !validator.objectLength( $( this ).rules() ) ) {return false;}rulesCache[ name ] = true;return true;} );},clean: function( selector ) {return $( selector )[ 0 ];},errors: function() {var errorClass = this.settings.errorClass.split( " " ).join( "." );return $( this.settings.errorElement + "." + errorClass, this.errorContext );},resetInternals: function() {this.successList = [];this.errorList = [];this.errorMap = {};this.toShow = $( [] );this.toHide = $( [] );},reset: function() {this.resetInternals();this.currentElements = $( [] );},prepareForm: function() {this.reset();this.toHide = this.errors().add( this.containers );},prepareElement: function( element ) {this.reset();this.toHide = this.errorsFor( element );},elementValue: function( element ) {var $element = $( element ),type = element.type,val, idx;if ( type === "radio" || type === "checkbox" ) {return this.findByName( element.name ).filter( ":checked" ).val();} else if ( type === "number" && typeof element.validity !== "undefined" ) {return element.validity.badInput ? "NaN" : $element.val();}if ( element.hasAttribute( "contenteditable" ) ) {val = $element.text();} else {val = $element.val();}if ( type === "file" ) {// Modern browser (chrome & safari)if ( val.substr( 0, 12 ) === "C:\\fakepath\\" ) {return val.substr( 12 );}// Legacy browsers// Unix-based pathidx = val.lastIndexOf( "/" );if ( idx >= 0 ) {return val.substr( idx + 1 );}// Windows-based pathidx = val.lastIndexOf( "\\" );if ( idx >= 0 ) {return val.substr( idx + 1 );}// Just the file namereturn val;}if ( typeof val === "string" ) {return val.replace( /\r/g, "" );}return val;},check: function( element ) {element = this.validationTargetFor( this.clean( element ) );var rules = $( element ).rules(),rulesCount = $.map( rules, function( n, i ) {return i;} ).length,dependencyMismatch = false,val = this.elementValue( element ),result, method, rule;// If a normalizer is defined for this element, then// call it to retreive the changed value instead// of using the real one.// Note that `this` in the normalizer is `element`.if ( typeof rules.normalizer === "function" ) {val = rules.normalizer.call( element, val );if ( typeof val !== "string" ) {throw new TypeError( "The normalizer should return a string value." );}// Delete the normalizer from rules to avoid treating// it as a pre-defined method.delete rules.normalizer;}for ( method in rules ) {rule = { method: method, parameters: rules[ method ] };try {result = $.validator.methods[ method ].call( this, val, element, rule.parameters );// If a method indicates that the field is optional and therefore valid,// don't mark it as valid when there are no other rulesif ( result === "dependency-mismatch" && rulesCount === 1 ) {dependencyMismatch = true;continue;}dependencyMismatch = false;if ( result === "pending" ) {this.toHide = this.toHide.not( this.errorsFor( element ) );return;}if ( !result ) {this.formatAndAdd( element, rule );return false;}} catch ( e ) {if ( this.settings.debug && window.console ) {console.log( "Exception occurred when checking element " + element.id + ", check the '" + rule.method + "' method.", e );}if ( e instanceof TypeError ) {e.message += ".  Exception occurred when checking element " + element.id + ", check the '" + rule.method + "' method.";}throw e;}}if ( dependencyMismatch ) {return;}if ( this.objectLength( rules ) ) {this.successList.push( element );}return true;},// Return the custom message for the given element and validation method// specified in the element's HTML5 data attribute// return the generic message if present and no method specific message is presentcustomDataMessage: function( element, method ) {return $( element ).data( "msg" + method.charAt( 0 ).toUpperCase() +method.substring( 1 ).toLowerCase() ) || $( element ).data( "msg" );},// Return the custom message for the given element name and validation methodcustomMessage: function( name, method ) {var m = this.settings.messages[ name ];return m && ( m.constructor === String ? m : m[ method ] );},// Return the first defined argument, allowing empty stringsfindDefined: function() {for ( var i = 0; i < arguments.length; i++ ) {if ( arguments[ i ] !== undefined ) {return arguments[ i ];}}return undefined;},defaultMessage: function( element, rule ) {var message = this.findDefined(this.customMessage( element.name, rule.method ),this.customDataMessage( element, rule.method ),// 'title' is never undefined, so handle empty string as undefined!this.settings.ignoreTitle && element.title || undefined,$.validator.messages[ rule.method ],"<strong>Warning: No message defined for " + element.name + "</strong>"),theregex = /\$?\{(\d+)\}/g;if ( typeof message === "function" ) {message = message.call( this, rule.parameters, element );} else if ( theregex.test( message ) ) {message = $.validator.format( message.replace( theregex, "{$1}" ), rule.parameters );}return message;},formatAndAdd: function( element, rule ) {var message = this.defaultMessage( element, rule );this.errorList.push( {message: message,element: element,method: rule.method} );this.errorMap[ element.name ] = message;this.submitted[ element.name ] = message;},addWrapper: function( toToggle ) {if ( this.settings.wrapper ) {toToggle = toToggle.add( toToggle.parent( this.settings.wrapper ) );}return toToggle;},defaultShowErrors: function() {var i, elements, error;for ( i = 0; this.errorList[ i ]; i++ ) {error = this.errorList[ i ];if ( this.settings.highlight ) {this.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.validClass );}this.showLabel( error.element, error.message );}if ( this.errorList.length ) {this.toShow = this.toShow.add( this.containers );}if ( this.settings.success ) {for ( i = 0; this.successList[ i ]; i++ ) {this.showLabel( this.successList[ i ] );}}if ( this.settings.unhighlight ) {for ( i = 0, elements = this.validElements(); elements[ i ]; i++ ) {this.settings.unhighlight.call( this, elements[ i ], this.settings.errorClass, this.settings.validClass );}}this.toHide = this.toHide.not( this.toShow );this.hideErrors();this.addWrapper( this.toShow ).show();},validElements: function() {return this.currentElements.not( this.invalidElements() );},invalidElements: function() {return $( this.errorList ).map( function() {return this.element;} );},showLabel: function( element, message ) {var place, group, errorID, v,error = this.errorsFor( element ),elementID = this.idOrName( element ),describedBy = $( element ).attr( "aria-describedby" );if ( error.length ) {// Refresh error/success classerror.removeClass( this.settings.validClass ).addClass( this.settings.errorClass );// Replace message on existing labelerror.html( message );} else {// Create error elementerror = $( "<" + this.settings.errorElement + ">" ).attr( "id", elementID + "-error" ).addClass( this.settings.errorClass ).html( message || "" );// Maintain reference to the element to be placed into the DOMplace = error;if ( this.settings.wrapper ) {// Make sure the element is visible, even in IE// actually showing the wrapped element is handled elsewhereplace = error.hide().show().wrap( "<" + this.settings.wrapper + "/>" ).parent();}if ( this.labelContainer.length ) {this.labelContainer.append( place );} else if ( this.settings.errorPlacement ) {this.settings.errorPlacement( place, $( element ) );} else {place.insertAfter( element );}// Link error back to the elementif ( error.is( "label" ) ) {// If the error is a label, then associate using 'for'error.attr( "for", elementID );// If the element is not a child of an associated label, then it's necessary// to explicitly apply aria-describedby} else if ( error.parents( "label[for='" + this.escapeCssMeta( elementID ) + "']" ).length === 0 ) {errorID = error.attr( "id" );// Respect existing non-error aria-describedbyif ( !describedBy ) {describedBy = errorID;} else if ( !describedBy.match( new RegExp( "\\b" + this.escapeCssMeta( errorID ) + "\\b" ) ) ) {// Add to end of list if not already presentdescribedBy += " " + errorID;}$( element ).attr( "aria-describedby", describedBy );// If this element is grouped, then assign to all elements in the same groupgroup = this.groups[ element.name ];if ( group ) {v = this;$.each( v.groups, function( name, testgroup ) {if ( testgroup === group ) {$( "[name='" + v.escapeCssMeta( name ) + "']", v.currentForm ).attr( "aria-describedby", error.attr( "id" ) );}} );}}}if ( !message && this.settings.success ) {error.text( "" );if ( typeof this.settings.success === "string" ) {error.addClass( this.settings.success );} else {this.settings.success( error, element );}}this.toShow = this.toShow.add( error );},errorsFor: function( element ) {var name = this.escapeCssMeta( this.idOrName( element ) ),describer = $( element ).attr( "aria-describedby" ),selector = "label[for='" + name + "'], label[for='" + name + "'] *";// 'aria-describedby' should directly reference the error elementif ( describer ) {selector = selector + ", #" + this.escapeCssMeta( describer ).replace( /\s+/g, ", #" );}return this.errors().filter( selector );},// See https://api.jquery.com/category/selectors/, for CSS// meta-characters that should be escaped in order to be used with JQuery// as a literal part of a name/id or any selector.escapeCssMeta: function( string ) {return string.replace( /([\\!"#$%&'()*+,./:;<=>?@\[\]^`{|}~])/g, "\\$1" );},idOrName: function( element ) {return this.groups[ element.name ] || ( this.checkable( element ) ? element.name : element.id || element.name );},validationTargetFor: function( element ) {// If radio/checkbox, validate first element in group insteadif ( this.checkable( element ) ) {element = this.findByName( element.name );}// Always apply ignore filterreturn $( element ).not( this.settings.ignore )[ 0 ];},checkable: function( element ) {return ( /radio|checkbox/i ).test( element.type );},findByName: function( name ) {return $( this.currentForm ).find( "[name='" + this.escapeCssMeta( name ) + "']" );},getLength: function( value, element ) {switch ( element.nodeName.toLowerCase() ) {case "select":return $( "option:selected", element ).length;case "input":if ( this.checkable( element ) ) {return this.findByName( element.name ).filter( ":checked" ).length;}}return value.length;},depend: function( param, element ) {return this.dependTypes[ typeof param ] ? this.dependTypes[ typeof param ]( param, element ) : true;},dependTypes: {"boolean": function( param ) {return param;},"string": function( param, element ) {return !!$( param, element.form ).length;},"function": function( param, element ) {return param( element );}},optional: function( element ) {var val = this.elementValue( element );return !$.validator.methods.required.call( this, val, element ) && "dependency-mismatch";},startRequest: function( element ) {if ( !this.pending[ element.name ] ) {this.pendingRequest++;$( element ).addClass( this.settings.pendingClass );this.pending[ element.name ] = true;}},stopRequest: function( element, valid ) {this.pendingRequest--;// Sometimes synchronization fails, make sure pendingRequest is never < 0if ( this.pendingRequest < 0 ) {this.pendingRequest = 0;}delete this.pending[ element.name ];$( element ).removeClass( this.settings.pendingClass );if ( valid && this.pendingRequest === 0 && this.formSubmitted && this.form() ) {$( this.currentForm ).submit();this.formSubmitted = false;} else if ( !valid && this.pendingRequest === 0 && this.formSubmitted ) {$( this.currentForm ).triggerHandler( "invalid-form", [ this ] );this.formSubmitted = false;}},previousValue: function( element, method ) {return $.data( element, "previousValue" ) || $.data( element, "previousValue", {old: null,valid: true,message: this.defaultMessage( element, { method: method } )} );},// Cleans up all forms and elements, removes validator-specific eventsdestroy: function() {this.resetForm();$( this.currentForm ).off( ".validate" ).removeData( "validator" ).find( ".validate-equalTo-blur" ).off( ".validate-equalTo" ).removeClass( "validate-equalTo-blur" );}},classRuleSettings: {required: { required: true },email: { email: true },url: { url: true },date: { date: true },dateISO: { dateISO: true },number: { number: true },digits: { digits: true },creditcard: { creditcard: true }},addClassRules: function( className, rules ) {if ( className.constructor === String ) {this.classRuleSettings[ className ] = rules;} else {$.extend( this.classRuleSettings, className );}},classRules: function( element ) {var rules = {},classes = $( element ).attr( "class" );if ( classes ) {$.each( classes.split( " " ), function() {if ( this in $.validator.classRuleSettings ) {$.extend( rules, $.validator.classRuleSettings[ this ] );}} );}return rules;},normalizeAttributeRule: function( rules, type, method, value ) {// Convert the value to a number for number inputs, and for text for backwards compability// allows type="date" and others to be compared as stringsif ( /min|max|step/.test( method ) && ( type === null || /number|range|text/.test( type ) ) ) {value = Number( value );// Support Opera Mini, which returns NaN for undefined minlengthif ( isNaN( value ) ) {value = undefined;}}if ( value || value === 0 ) {rules[ method ] = value;} else if ( type === method && type !== "range" ) {// Exception: the jquery validate 'range' method// does not test for the html5 'range' typerules[ method ] = true;}},attributeRules: function( element ) {var rules = {},$element = $( element ),type = element.getAttribute( "type" ),method, value;for ( method in $.validator.methods ) {// Support for <input required> in both html5 and older browsersif ( method === "required" ) {value = element.getAttribute( method );// Some browsers return an empty string for the required attribute// and non-HTML5 browsers might have required="" markupif ( value === "" ) {value = true;}// Force non-HTML5 browsers to return boolvalue = !!value;} else {value = $element.attr( method );}this.normalizeAttributeRule( rules, type, method, value );}// 'maxlength' may be returned as -1, 2147483647 ( IE ) and 524288 ( safari ) for text inputsif ( rules.maxlength && /-1|2147483647|524288/.test( rules.maxlength ) ) {delete rules.maxlength;}return rules;},dataRules: function( element ) {var rules = {},$element = $( element ),type = element.getAttribute( "type" ),method, value;for ( method in $.validator.methods ) {value = $element.data( "rule" + method.charAt( 0 ).toUpperCase() + method.substring( 1 ).toLowerCase() );this.normalizeAttributeRule( rules, type, method, value );}return rules;},staticRules: function( element ) {var rules = {},validator = $.data( element.form, "validator" );if ( validator.settings.rules ) {rules = $.validator.normalizeRule( validator.settings.rules[ element.name ] ) || {};}return rules;},normalizeRules: function( rules, element ) {// Handle dependency check$.each( rules, function( prop, val ) {// Ignore rule when param is explicitly false, eg. required:falseif ( val === false ) {delete rules[ prop ];return;}if ( val.param || val.depends ) {var keepRule = true;switch ( typeof val.depends ) {case "string":keepRule = !!$( val.depends, element.form ).length;break;case "function":keepRule = val.depends.call( element, element );break;}if ( keepRule ) {rules[ prop ] = val.param !== undefined ? val.param : true;} else {$.data( element.form, "validator" ).resetElements( $( element ) );delete rules[ prop ];}}} );// Evaluate parameters$.each( rules, function( rule, parameter ) {rules[ rule ] = $.isFunction( parameter ) && rule !== "normalizer" ? parameter( element ) : parameter;} );// Clean number parameters$.each( [ "minlength", "maxlength" ], function() {if ( rules[ this ] ) {rules[ this ] = Number( rules[ this ] );}} );$.each( [ "rangelength", "range" ], function() {var parts;if ( rules[ this ] ) {if ( $.isArray( rules[ this ] ) ) {rules[ this ] = [ Number( rules[ this ][ 0 ] ), Number( rules[ this ][ 1 ] ) ];} else if ( typeof rules[ this ] === "string" ) {parts = rules[ this ].replace( /[\[\]]/g, "" ).split( /[\s,]+/ );rules[ this ] = [ Number( parts[ 0 ] ), Number( parts[ 1 ] ) ];}}} );if ( $.validator.autoCreateRanges ) {// Auto-create rangesif ( rules.min != null && rules.max != null ) {rules.range = [ rules.min, rules.max ];delete rules.min;delete rules.max;}if ( rules.minlength != null && rules.maxlength != null ) {rules.rangelength = [ rules.minlength, rules.maxlength ];delete rules.minlength;delete rules.maxlength;}}return rules;},// Converts a simple string to a {string: true} rule, e.g., "required" to {required:true}normalizeRule: function( data ) {if ( typeof data === "string" ) {var transformed = {};$.each( data.split( /\s/ ), function() {transformed[ this ] = true;} );data = transformed;}return data;},// http://jqueryvalidation.org/jQuery.validator.addMethod/addMethod: function( name, method, message ) {$.validator.methods[ name ] = method;$.validator.messages[ name ] = message !== undefined ? message : $.validator.messages[ name ];if ( method.length < 3 ) {$.validator.addClassRules( name, $.validator.normalizeRule( name ) );}},// http://jqueryvalidation.org/jQuery.validator.methods/methods: {// http://jqueryvalidation.org/required-method/required: function( value, element, param ) {// Check if dependency is metif ( !this.depend( param, element ) ) {return "dependency-mismatch";}if ( element.nodeName.toLowerCase() === "select" ) {// Could be an array for select-multiple or a string, both are fine this wayvar val = $( element ).val();return val && val.length > 0;}if ( this.checkable( element ) ) {return this.getLength( value, element ) > 0;}return value.length > 0;},// http://jqueryvalidation.org/email-method/email: function( value, element ) {// From https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address// Retrieved 2014-01-14// If you have a problem with this implementation, report a bug against the above spec// Or use custom methods to implement your own email validationreturn this.optional( element ) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( value );},// http://jqueryvalidation.org/url-method/url: function( value, element ) {// Copyright (c) 2010-2013 Diego Perini, MIT licensed// https://gist.github.com/dperini/729294// see also https://mathiasbynens.be/demo/url-regex// modified to allow protocol-relative URLsreturn this.optional( element ) || /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test( value );},// http://jqueryvalidation.org/date-method/date: function( value, element ) {return this.optional( element ) || !/Invalid|NaN/.test( new Date( value ).toString() );},// http://jqueryvalidation.org/dateISO-method/dateISO: function( value, element ) {return this.optional( element ) || /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test( value );},// http://jqueryvalidation.org/number-method/number: function( value, element ) {return this.optional( element ) || /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test( value );},// 字符验证 stringCheck: function( value, element ) {//return this.optional( element ) || /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test( value );return this.optional(element) || /^[\u0391-\uFFE5\w]+$/.test(value); //只能包括中文字、英文字母、数字和下},// 验证字符长度  请确保输入的值在3-15个字节之间(一个中文字算2个字节)byteRangeLength: function( value, element, param ) {//return this.optional( element ) || value <= param;var length = value.length; for(var i = 0; i < value.length; i++){ if(value.charCodeAt(i) > 127){ length++; } } return this.optional(element) || ( length >= param[0] && length <= param[1] ); },// 验证码验证 不相等不能提交codeLength: function( value, element, param ) {return this.optional( element ) || Number(value) === Number(param);},// http://jqueryvalidation.org/digits-method/digits: function( value, element ) {return this.optional( element ) || /^\d+$/.test( value );},// http://jqueryvalidation.org/minlength-method/minlength: function( value, element, param ) {var length = $.isArray( value ) ? value.length : this.getLength( value, element );return this.optional( element ) || length >= param;},// http://jqueryvalidation.org/maxlength-method/maxlength: function( value, element, param ) {var length = $.isArray( value ) ? value.length : this.getLength( value, element );return this.optional( element ) || length <= param;},// http://jqueryvalidation.org/rangelength-method/rangelength: function( value, element, param ) {var length = $.isArray( value ) ? value.length : this.getLength( value, element );return this.optional( element ) || ( length >= param[ 0 ] && length <= param[ 1 ] );},// http://jqueryvalidation.org/min-method/min: function( value, element, param ) {return this.optional( element ) || value >= param;},// http://jqueryvalidation.org/max-method/max: function( value, element, param ) {return this.optional( element ) || value <= param;},// http://jqueryvalidation.org/range-method/range: function( value, element, param ) {return this.optional( element ) || ( value >= param[ 0 ] && value <= param[ 1 ] );},// http://jqueryvalidation.org/step-method/step: function( value, element, param ) {var type = $( element ).attr( "type" ),errorMessage = "Step attribute on input type " + type + " is not supported.",supportedTypes = [ "text", "number", "range" ],re = new RegExp( "\\b" + type + "\\b" ),notSupported = type && !re.test( supportedTypes.join() );// Works only for text, number and range input types// TODO find a way to support input types date, datetime, datetime-local, month, time and weekif ( notSupported ) {throw new Error( errorMessage );}return this.optional( element ) || ( value % param === 0 );},// http://jqueryvalidation.org/equalTo-method/equalTo: function( value, element, param ) {// Bind to the blur event of the target in order to revalidate whenever the target field is updatedvar target = $( param );if ( this.settings.onfocusout && target.not( ".validate-equalTo-blur" ).length ) {target.addClass( "validate-equalTo-blur" ).on( "blur.validate-equalTo", function() {$( element ).valid();} );}return value === target.val();},// http://jqueryvalidation.org/remote-method/remote: function( value, element, param, method ) {if ( this.optional( element ) ) {return "dependency-mismatch";}method = typeof method === "string" && method || "remote";var previous = this.previousValue( element, method ),validator, data, optionDataString;if ( !this.settings.messages[ element.name ] ) {this.settings.messages[ element.name ] = {};}previous.originalMessage = previous.originalMessage || this.settings.messages[ element.name ][ method ];this.settings.messages[ element.name ][ method ] = previous.message;param = typeof param === "string" && { url: param } || param;optionDataString = $.param( $.extend( { data: value }, param.data ) );if ( previous.old === optionDataString ) {return previous.valid;}previous.old = optionDataString;validator = this;this.startRequest( element );data = {};data[ element.name ] = value;$.ajax( $.extend( true, {mode: "abort",port: "validate" + element.name,dataType: "json",data: data,context: validator.currentForm,success: function( response ) {var valid = response === true || response === "true",errors, message, submitted;validator.settings.messages[ element.name ][ method ] = previous.originalMessage;if ( valid ) {submitted = validator.formSubmitted;validator.resetInternals();validator.toHide = validator.errorsFor( element );validator.formSubmitted = submitted;validator.successList.push( element );validator.invalid[ element.name ] = false;validator.showErrors();} else {errors = {};message = response || validator.defaultMessage( element, { method: method, parameters: value } );errors[ element.name ] = previous.message = message;validator.invalid[ element.name ] = true;validator.showErrors( errors );}previous.valid = valid;validator.stopRequest( element, valid );}}, param ) );return "pending";}}} );// Ajax mode: abort// usage: $.ajax({ mode: "abort"[, port: "uniqueport"]});// if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort()var pendingRequests = {},ajax;// Use a prefilter if available (1.5+)if ( $.ajaxPrefilter ) {$.ajaxPrefilter( function( settings, _, xhr ) {var port = settings.port;if ( settings.mode === "abort" ) {if ( pendingRequests[ port ] ) {pendingRequests[ port ].abort();}pendingRequests[ port ] = xhr;}} );} else {// Proxy ajaxajax = $.ajax;$.ajax = function( settings ) {var mode = ( "mode" in settings ? settings : $.ajaxSettings ).mode,port = ( "port" in settings ? settings : $.ajaxSettings ).port;if ( mode === "abort" ) {if ( pendingRequests[ port ] ) {pendingRequests[ port ].abort();}pendingRequests[ port ] = ajax.apply( this, arguments );return pendingRequests[ port ];}return ajax.apply( this, arguments );};}}));



user_reg.php代码 (检查用户名是否存在)

接收ajax传递过来的值,php判断自己写

<?phpheader("Content-type: text/html;charset=utf-8");include("sunland_config.php");$action=trim($_REQUEST['action']);$username=trim($_REQUEST['username']);if( $action == 'ck_user' ){//判定用户名是否存在 $sqlmm2_user="select t1,id from userinfo where t1='".$username."'";  $connmm2_user=mysql_query($sqlmm2_user); $num_rows = mysql_num_rows($connmm2_user); if( $num_rows != '' ){exit( "false" ); //用户名已存在}else{exit( "true" ); //用户名不存在,验证通过,输出“true”,并结束程序}     mysql_close();}?>




03.php代码(提交表单,把数据插入数据库)

插入数据库PHP自己写,这里只是做一个简单判断,返回一个值,知道是否注册成功

<?phpheader('Content-type:text/json;charset=utf-8');    $username=$_POST['username'];    $password=$_POST['password'];//也可以在成功插入数据库后再赋值success  在这里不具体写出来,只是做一个简单判断后赋值if($username=="" || $password==""){$su="";}else{$su="success";//给su赋值“success”;}       $data='{su:"' . $su .'"}';//只返回su变量值来判断是否注册成功,其它值不返回   //$data='{username:"' . $username . '",password:"' . $password .'",su:"' . $su .'"}';//所有值都返回   echo json_encode($data);?>

     

0 0
原创粉丝点击