本帖最后由 tingaining 于 2010-10-12 12:52:36 编辑

解决方案 »

  1.   

    return false;
    以阻止提交
      

  2.   

    <script type="text/javascript">
    jQuery(function($){
    $("#user_name").blur(function(){
    var user_name = $("#user_name").val();
    var query = new Object();
    query.m = "Ajax";
    query.a = "user_name";
    query.user_name = user_name;
    query.type = this.getAttribute("type");
    if(user_name == ''){
    $("#user_names").html("用户名不能为空!");
    return false;
    }
    $.ajax({
    url: "index.php",
    data: query,
    dataType: "json",
    success:function(json){
    if(json.type == 0) {
    $("#user_names").html("此用户名已经存在");$("#user_names").show();
    return false;
    } else {
    $("#user_names").hide();}
    }
    });});
    });
    </script> 
      

  3.   

    <script type="text/javascript">
    function checkUser(){
    //将相面的ajax操作放到这里,如果想不让表单提交请return false;(默认返回true)
    }
    jQuery(function($){
    $("#user_name").blur(function(){
    var user_name = $("#user_name").val();
    var query = new Object();
    query.m = "Ajax";
    query.a = "user_name";
    query.user_name = user_name;
    query.type = this.getAttribute("type");
    if(user_name == ''){
    $("#user_names").html("用户名不能为空!");
    return;
    }
    $.ajax({
    url: "index.php",
    data: query,
    dataType: "json",
    async: false,//设置同步,异步不能实现楼主的要求success:function(json){
    if(json.type == 0) {
    $("#user_names").html("此用户名已经存在");$("#user_names").show();
    } else {
    $("#user_names").hide();
    }
    }
    });});
    });
    </script>表单部分代码:
    <form class="cmxform" id="commentForm" action="" method="post" onsubmit="return checkUser()">
      <label for="user_name">
      <span style="red">*</span>用户名</label>
      <input type="text" tabindex="2" id="user_name" name="user_name" class="minlength" minlength="6"/>
      <input type="button" id="user-submit" value="确认注册" />
    </form>
      

  4.   

    4楼的朋友:function checkUser(){
    //将相面的ajax操作放到这里,如果想不让表单提交请return false;(默认返回true)
    }
    在我这边没用,因为我是ajax那样判断的我的控制ajax的php是:
    public function user_name(){
    $result = array ("type" => 0, "msg" => "", "html" => "" );
    $user_name = $_REQUEST['user_name'];
    $username = D("User")->where("user_name = '$user_name'")->find();

    if($username['user_name'] == $user_name){
    $result['type'] = 0;
    }else {
    $result['type'] = 1;
    }
    echo json_encode ( $result );
    }
      

  5.   

    用$("#user_name").blur(function(){
    })
    用这个东西去触发啊ajax
      

  6.   

    问题解决了,现在记录下来,仅供遇到跟我一样的同鞋学习:
    js代码1:
    <script type="text/javascript">
    jQuery(function($){
    $("#user_name").blur(function(){
    var user_name = $("#user_name").val();
    var query = new Object();
    query.m = "Ajax";
    query.a = "user_name";
    query.user_name = user_name;
    query.type = this.getAttribute("type");
    if(user_name == ''){
    $("#user_names").html("用户名不能为空!");
    is_good = '0';
    return;
    }
    $.ajax({
    url: "index.php",
    data: query,
    async:false,
    dataType: "json",
    success:function(json){
    if(json.type == 0)  {
    $("#user_names").html("此用户名已经存在");
    $("#user_names").show();
    is_good = '0';
    return;
    } else  {
    $("#user_names").hide();
    is_good = '1';
    }
    }
    });

    });
    });
    </script>
    js代码2:
    <script type="text/javascript">
    jQuery(function($){
    $("#user-submit").click(function(){
    $("#user_name").blur();
    if(is_good == '0')
    return false;
    else
    $("#commentForm").submit();

    });
    });
    </script>只想说变态两个字!