如何在表单验证jquery中使用用户名可用性检查器脚本

时间:2013-12-21 06:30:14

标签: javascript jquery ajax jquery-validate

我是jquery的新手。我有以下代码来检查用户名可用性。

脚本运行正常。检查用户名是否可用。

  <script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>

 <script type="text/javascript">
$(function()
{
$('.user_name').keyup(function()
{
 var checkname=$(this).val();
var availname=remove_whitespaces(checkname);
 if(availname!=''){
 $('.check').show();
 $('.check').fadeIn(400).html('<img src="image/ajax-loading.gif" /> ');

 var String = 'username='+ availname;

   $.ajax({
       type: "POST",
      url: "available.php",
      data: String,
      cache: false,
      success: function(result){
           var result=remove_whitespaces(result);
           if(result==''){
                   $('.check').html('<img src="image/accept.png" /> This Username Is Avaliable');
                   $(".check").removeClass("red");
                   $('.check').addClass("green");
                   $(".user_name").removeClass("yellow");
                   $(".user_name").addClass("white");
           }else{
                   $('.check').html('<img src="image/error.png" /> This Username Is Already Taken');
                   $(".check").removeClass("green");
                   $('.check').addClass("red")
                   $(".user_name").removeClass("white");
                   $(".user_name").addClass("yellow");
           }
      }
  });
   }else{
     $('.check').html('');

  }
  });
  });

 function remove_whitespaces(str){
 var str=str.replace(/^\s+|\s+$/,'');
 return str;
}

available.php包含以下代码。

  if(isset($_POST['username']) && !empty($_POST['username'])){
  $username=mysql_real_escape_string($_POST['username']);
  $query="select * from sell where LOWER(uname)='$username'";
  $res=mysql_query($query);
  $count=mysql_num_rows($res);

  if($count > 0){
      echo "true";

  }else{
      echo "false";

  }
 }

一切正常。 ajax发布和检查值是否存在。

但我的问题是如何将以上脚本包含在以下jquery验证脚本中。

       $(document).ready(function(){
       $("#f2").validate({
         debug: false,
      rules: {    
              name: {
         required:true,
         minlength:3
//Here how to call the above script function..i stuck here..

            }
           });
           });

根据名称的可用性,我需要处理表单以提交.php,否则表格将不会被提交..

任何建议,可接受。

1 个答案:

答案 0 :(得分:0)

在验证功能中添加此脚本

<script>
   $(document).ready(function(){
   $("#f2").validate({
     debug: false,
     rules: {
        name: {
           required:true,
           minlength:3,
           remote:{
              url: "available.php",
              type: "post",
              data: {
                username: function() {
                   return $( ".user_name" ).val();
                }
              }
           }
        }
     }
   });
</script>

删除“keyup”事件功能,而不是你完成...