微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用jquery验证的远程功能

我试图找出如何解决这个问题:
$('#username').blur(function(){
    $.post('register/isUsernameAvailable',{"username":$('#username').val()},function(data){
               if(data.username == "found"){
                   alert('username already in use');
               }
           },'json');
});

接近这个:

rules: {
        username: {
            minlength: 6,maxlength: 12,remote: {
                url: 'register/isUsernameAvailable',type: 'post',data: {
                    'username': $('#username').val()
                } 

            }
        }

但是我很难完成它.我想要的是代替警报,让它显示错误消息,但我可以在实际的jquery验证消息中设置消息.

http://docs.jquery.com/Plugins/Validation/Methods/remote#options

更新:

出于某种原因,它没有把它作为一个POST做它作为GET请求并且不确定原因.这是更新的代码

rules: {
        username: {
            minlength: 6,dataType: 'post',data: {
                    'username': $('#username').val()
                },success: function(data) {
                    if (data.username == 'found')
                    {
                        message: {
                            username: 'The username is already in use!'
                        }
                    }
                }

            }
        },

更新2:

现在,我正在回到某个地方,我正在收到POST请求.我还有两个问题.其中一个事实是,要完成另一个POST请求,用户必须刷新表单.最后一个问题是,如果找到返回的用户名,则不会显示错误消息.

rules: {
        username: {
            minlength: 6,remote: {
                type: 'post',url: 'register/isUsernameAvailable',dataType: 'json',

更新:

public function isUsernameAvailable()
{
    if ($this->usersmodel->isUsernameAvailable($this->input->post('username')))
    {
        return false;
    }
    else
    {
        return true;
    }        
}

更新4:

控制器:

public function isUsernameAvailable()
{
    if ($this->usersmodel->isUsernameAvailable($this->input->post('username')))
    {
        return false;
    }
    else
    {
        return true;
    }        
}

public function isEmailAvailable()
{
    if ($this->usersmodel->isEmailAvailable($this->input->post('emailAddress')))
    {
        return false;
    }
    else
    {
        return true;
    }        
}

模型:

/**
 * Check if username available for registering
 *
 * @param   string
 * @return  bool
 */
function isUsernameAvailable($username)
{
    $this->db->select('username');
    $this->db->where('LOWER(username)=',strtolower($username));
    $query = $this->db->get($this->usersTable);
    if ($query->num_rows() == 0)
    {
        return true;
    }
    else
    {
        return false;
    }
}

/**
 * Check if email available for registering
 *
 * @param   string
 * @return  bool
 */
function isEmailAvailable($email)
{
    $this->db->select('email');
    $this->db->where('LOWER(email)=',strtolower($email));
    $query = $this->db->get($this->usersTable);
    if($query->num_rows() == 0)
    {
        return true;
    }
    else
    {
        return false;
    }
}

解决方法

好吧,我特别关注你的插件概念,但是如果用户名大于6或小于12,我希望它检查一下这个插件.从你的jQuery没有插件的核心示例中,它就像添加一样简单一个小的if – 否则这个概念.
$('#username').blur(function(){
    if($('#username').val().length < 6 || $('#username').val().length > 12)
    {
        alert('Username must be between 6 and 12 characters');
    }
    else
    {
       $.post('register/isUsernameAvailable',function(data){
                  if(data.username == "found"){
                      alert('username already in use');
                  }
              },'json');
    }
});

原文地址:https://www.jb51.cc/jquery/181310.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐