JQuery帖子与@符号有问题

时间:2013-09-25 13:58:24

标签: jquery regex

我有一个带有电子邮件字段的表单,我希望在keyup()上针对MySQL数据库进行验证。我也尝试使用用户名字段,并且没有遇到任何问题。但由于某种原因,电子邮件的价值不会发布到php函数,或者在你onKeyUp()@符号时从控制器返回任何内容。一封电子邮件在电子邮件地址中间位于@where somwhere,例如piet@pompies.com,“piet”帖子很好,直到您点击班次2(@)然后一切都流失了。这是代码:

$( "#emailField" ).keyup(function(){

    var email = $("#emailField").val();

    $.post( "<?php echo URL_CHECK_EMAIL_EXISTS; ?>" + email, function( data ) {

        alert(email);

    });

});

这是控制器功能,即使我说一切正常的字符串,如用户名。

 public function check_email($email){

    $exists = $this->User_Model->if_email_exists($email);

    if($exists){

        echo "true";

    } else {

        echo "false";

    }

}

这是模型,工作正常:

public function if_email_exists($email){

    $this->db
    ->from('users')
    ->where('email', $email)
    ->limit(1);

    $query = $this->db->get();

    if ($query->num_rows() > 0){

        return true;

    } else {

        return false;

    }

}

2 个答案:

答案 0 :(得分:0)

使用encodeURI对电子邮件地址进行编码,然后再将其发布到PHP。

答案 1 :(得分:0)

您可以尝试的原始代码就像这样

$( "#emailField" ).blur(function(){ // u can also use focusout event

var email = $("#emailField").val().trim();
// Check for email validity using regex
 if(email_valid){
    $.ajax({
        type: "POST",
        url: 'url here',
        data: { email :  email }
         }).done(function(resp){
              alert(resp)
         });
}else{
   alert('Invalid Email)
  }
});