对应js处理页面:
/**
*
*/
$(function() {//加载完后处理页面
//alert($("#faceimg").attr("src")) ;
$("#faceimg").click(function(){
window.open('face.php','face','width=400,height=400,top=0,left=0,scrollbars=1');
});
$("#mycheckcode").click(
function(){
var url="includes/code.php?aa="+Math.random();
$("#mycheckcode").attr("src",url);
}
);
/***
//输入的每个值都要以post的方法放到data里面
var adata='';
$("input").each(
function(){
adata+=$(this).attr('name')+"="+$(this).val()+"&";
}
);
$.ajax({
type: "POST",//提交的方式
url: "registerProcess.php",//提交对应的页面
dataType: "json",//返回的是什么格式
data:adata,//post过去的data
fail:function(msg){
//失败处理函数
},
success:function(){
//成功处理函数
}
});
**/
//作验证
//如果是必填的,则加红星标识.
$("form :input.required").each(function(){
var $required = $("<strong class='high'> *</strong>"); //创建元素
$(this).parent().append($required); //然后将它追加到文档中
});
//文本框失去焦点后
$('form :input').blur(function(){
var $parent = $(this).parent();
$parent.find(".formtips").remove();
//验证用户名
if( $(this).is('#username') ){
if( this.value=="" || this.value.length < 6 ){
var errorMsg = '请输入至少6位的用户名.';
$parent.append('<span class="formtips onError">'+errorMsg+'</span>');
}else{
var username = {"username":$(this).val()}; //json格式传过处理页面
var changeurl = "action/UserAction.php?act=IsExistUserName&flg=ling";
//用Post的方式 提交过去,验证用户名是否存在
$.post(changeurl,username,function(res){//成功返回值
if(res==1){
var errorMsg ="用户名好受欢迎哦,再试下其他的吧";
$parent.append('<span class="formtips onError">'+errorMsg+'</span>');
}else{
var okMsg ="用户名可用.";
$parent.append('<span class="formtips onSuccess">'+okMsg+'</span>');
}
});
}
}
//验证密码长度
if($(this).is("#password")){
if(this.value==""||this.value.length<2){
var errorMsg = '请输入至少2个字符的密码.';
$parent.append('<span class="formtips onError">'+errorMsg+'</span>');
}else{
var okMsg = '输入正确.';
$parent.append('<span class="formtips onSuccess">'+okMsg+'</span>');
}
}
//验证两次密码是否一致
if($(this).is('#repassword')){
if(this.value==""||this.value.length<2){
var errorMsg = '请输入至少2个字符的密码.';
$parent.append('<span class="formtips onError">'+errorMsg+'</span>');
}else{
var password=$("#password").val();//取到密码的值
if(this.value!=password){
var errorMsg = '两次密码输入不一致.';
$parent.append('<span class="formtips onError">'+errorMsg+'</span>');
}else{
var okMsg = '输入正确.';
$parent.append('<span class="formtips onSuccess">'+okMsg+'</span>');
}
}
}
//密码问题和密码提示要至少2个字符
if($(this).is("#passtips")||$(this).is("#passans")){
if( this.value=="" || this.value.length < 6 ){
var errorMsg = '请输入至少2位.';
$parent.append('<span class="formtips onError">'+errorMsg+'</span>');
}else{
var okMsg = '输入正确.';
$parent.append('<span class="formtips onSuccess">'+okMsg+'</span>');
}
}
//验证邮件
if( $(this).is('#email') ){
if( this.value=="" || ( this.value!="" && !/.+@.+\.[a-zA-Z]{2,4}$/.test(this.value) ) ){
var errorMsg = '请输入正确的E-Mail地址.';
$parent.append('<span class="formtips onError">'+errorMsg+'</span>');
}else{
var okMsg = '输入正确.';
$parent.append('<span class="formtips onSuccess">'+okMsg+'</span>');
}
}
//验证qq
var qq=/[1-9][0-9]{4,}/ ;
if($(this).is("#qq")){
if(qq.test(this.value) ){
var okMsg = '输入正确.';
$parent.append('<span class="formtips onSuccess">'+okMsg+'</span>');
}else{
var errorMsg = '请输入正确的QQ.';
$parent.append('<span class="formtips onError">'+errorMsg+'</span>');
}
}
//验证地址
var url=/^https?:\/\/(\w+\.)?[\w\-\.]+(\.\w+)+$/ ;
if($(this).is("#url")){
if(url.test(this.value) ){
var okMsg = '输入正确.';
$parent.append('<span class="formtips onSuccess">'+okMsg+'</span>');
}else{
var errorMsg = '请输入正确的地址格式.';
$parent.append('<span class="formtips onError">'+errorMsg+'</span>');
}
}
if($(this).is("#code")){
var url="includes/getSession.php";
$.post(url, {'sessionName':this.name,'value':this.value},function(res){
if(res==1){
var okMsg ="输入正确";
$parent.append('<span class="formtips onSuccess">'+okMsg+'</span>');
}else{
var errorMsg ="验证码不正确";
$parent.append('<span class="formtips onError">'+errorMsg+'</span>');
}
});
}
}).focus(function(){//重新操作时重新赋值事件
$(this).triggerHandler("blur");//绑定处理事件
});
/**这部分个人感觉有点多了
.keyup(function(){
$(this).triggerHandler("blur");
}).focus(function(){
$(this).triggerHandler("blur");
});**///end blur
//提交,最终验证。
$('#send').click(function(){
$("form:input.required").trigger('blur');
var numError = $('form .onError').length;
if(numError){
return false;
}
var url="registerProcess.php";
//var data={'username':$("#username").val(),'password':$("#password").val(),'repassword':$("#repassword").val(),'passtips':$('#passtips').val(),'passans':$("#passans").val(),
// 'email':$("#email").val(),'qq':$("#qq").val(),'sex':$(":input[name='sex'][checked]").val(),'url':$("#url"),'faceimg':$("#faceimg").attr("src")};
$.post(url,$("#myform").serialize(),function(res){
if(res==1){
alert("注册成功,请进入登录界面");
}else{
alert("没有成功");
}
});
});
//重置
$('#res').click(function(){
$(".formtips").remove();
});
});
而处理form表单处理页面registerProcess.php
<?php
//处理register过来的内容
if(!defined('IN_TG')){
exit('Access Defined');
}
//唯一标识 md5(uniqid(rand(),true));32位 更历害的可以是40位的 sha1(uniqid(rand(),true));
require_once ROOT_PATH.'includes/common.inc.php';
require_once ROOT_PATH.'model/userservice.class.php';
$hCon=new stdClass();//设置一个对象
$hCon->uniqid=$_SESSION['uniqid'];
$hCon->active=$_SESSION['active'];
$hCon->username=trim($_POST['username']);//去掉空格
$hCon->password=md5($_POST['password']);//密码加密
$hCon->repassword=md5($_POST['repassword']);
$hCon->question=_mysql_string($_POST['passtips']);//去掉转义字符
$hCon->answer=_mysql_string($_POST['passans']);
$hCon->sex=_mysql_string($_POST['sex']);
$hCon->face=_mysql_string($_POST['faceimg']);
$hCon->qq=$_POST['qq'];
$hCon->url=_mysql_string($_POST['url']);
$hCon->email=_mysql_string($_POST['email']);
session_start();
if($hCon->uniqid!=$_SESSION['uniqid']){
_alert_back("防止恶意提交表单");
}
$userservice=new CUserService();
$res=$userservice->addUser($hCon);
print $res;
这里处理完js前端的验证后提交却一直在原来页面刷新,也不进入挖掘$.post后的处理事件,请问是哪一步出了问题。初学jquery整合php,望大仙指教啊。。。
4 个解决方案
#1
先定位问题:
1 有错误提示没有,有错误的话,有任何异常都是合理的
2 运行到了提交那步了没有,可在post前alert(123)
3 post方法你用对了没有,是否要设置格式,(serialize()我从来不用,都把值取出来顺便前台检查一下)
我处理方法是,用ajax post json数据,你发的东西不够测试,自已使劲调,定位问题是核心内容
1 有错误提示没有,有错误的话,有任何异常都是合理的
2 运行到了提交那步了没有,可在post前alert(123)
3 post方法你用对了没有,是否要设置格式,(serialize()我从来不用,都把值取出来顺便前台检查一下)
我处理方法是,用ajax post json数据,你发的东西不够测试,自已使劲调,定位问题是核心内容
#2
$.post(url, {'sessionName':this.name,'value':this.value}试试post里的data名不加引号
$.post(url, {sessionName:this.name,value:this.value},
还有,测试最好用submit,或者.php?ss=1带参数的样式 进行测试。
$.post(url, {sessionName:this.name,value:this.value},
还有,测试最好用submit,或者.php?ss=1带参数的样式 进行测试。
#3
#4
$.post(url,$("#myform").serialize(),function(res){
if(res==1){
alert("注册成功,请进入登录界面");
}else{
alert("没有成功");
}
这里面第二个参数应该是你自己定义的 data
你可以装个firefox浏览器,在装一个firebug插件。
用firebug的“网络”查看你的请求发出去没有, 返回值是什么。
if(res==1){
alert("注册成功,请进入登录界面");
}else{
alert("没有成功");
}
这里面第二个参数应该是你自己定义的 data
你可以装个firefox浏览器,在装一个firebug插件。
用firebug的“网络”查看你的请求发出去没有, 返回值是什么。
#1
先定位问题:
1 有错误提示没有,有错误的话,有任何异常都是合理的
2 运行到了提交那步了没有,可在post前alert(123)
3 post方法你用对了没有,是否要设置格式,(serialize()我从来不用,都把值取出来顺便前台检查一下)
我处理方法是,用ajax post json数据,你发的东西不够测试,自已使劲调,定位问题是核心内容
1 有错误提示没有,有错误的话,有任何异常都是合理的
2 运行到了提交那步了没有,可在post前alert(123)
3 post方法你用对了没有,是否要设置格式,(serialize()我从来不用,都把值取出来顺便前台检查一下)
我处理方法是,用ajax post json数据,你发的东西不够测试,自已使劲调,定位问题是核心内容
#2
$.post(url, {'sessionName':this.name,'value':this.value}试试post里的data名不加引号
$.post(url, {sessionName:this.name,value:this.value},
还有,测试最好用submit,或者.php?ss=1带参数的样式 进行测试。
$.post(url, {sessionName:this.name,value:this.value},
还有,测试最好用submit,或者.php?ss=1带参数的样式 进行测试。
#3
#4
$.post(url,$("#myform").serialize(),function(res){
if(res==1){
alert("注册成功,请进入登录界面");
}else{
alert("没有成功");
}
这里面第二个参数应该是你自己定义的 data
你可以装个firefox浏览器,在装一个firebug插件。
用firebug的“网络”查看你的请求发出去没有, 返回值是什么。
if(res==1){
alert("注册成功,请进入登录界面");
}else{
alert("没有成功");
}
这里面第二个参数应该是你自己定义的 data
你可以装个firefox浏览器,在装一个firebug插件。
用firebug的“网络”查看你的请求发出去没有, 返回值是什么。