1

我有一个带有电子邮件字段的表单,我想在 keyup() 上针对 MySQL 数据库进行验证。我也用用户名字段尝试过这个,这样做没有问题。但是由于某种原因,电子邮件的值不会发布到 php 函数或在您 onKeyUp() @ 符号的那一刻从控制器返回任何内容。一封电子邮件的@位于电子邮件地址中间的某个位置,例如 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;

    }

}
4

2 回答 2

0

用于encodeURI在将电子邮件地址发布到 PHP 之前对其进行编码。

于 2013-09-25T14:03:22.630 回答
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)
  }
});
于 2013-09-25T14:14:06.667 回答