文本类型输入元素的默认值


default value of text type input element

我正在尝试检查刚刚输入的电子邮件用户是否在数据库中,并显示消息。它工作正常。但当我删除输入的值并将焦点移开时,会显示其他选项。但我也不想展示。这是我的代码ajax

<script>
$(document).ready(function(){
  $("#email").focusout(function(){
  var emailVal = $('#email').val();
    $.ajax({
        type: 'post',
        url: 'check_email.php',
        data:  { 
         myparam:emailVal //set it with a parameter name
      },

        success: function( data ) {
        alert(data);
        if(data==1){
        document.getElementById('email_check').innerHTML="<p style='color:red;'>The email you have entered is already exist!</p>";
           }
            if(data==0){
            document.getElementById('email_check').innerHTML="<p style='color:green;'>The email you have entered is available!</p>";}
        }
    });
  });
});

</script>

这是我的check_email.php文件,

      <?php          
require_once("connnection.php"); 
$con=mysqli_connect($dbhost,$dbuser,$dbpass,$dbname);
// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
if (isset($_POST['myparam'])){
$email=mysqli_real_escape_string($con,$_POST['myparam']);
$sql = "SELECT * FROM user WHERE email='$email'";
$select=mysqli_query($con,$sql) or die("fail");
$row = mysqli_num_rows($select);
if ($row >0) {
    echo 1;
}else {
echo 0;
}
else
echo "post error";                                

在删除输入的值并将焦点向外(单击另一个地方)后,会发生以下情况,使用我从服务器获得的警报(数据)0作为数据。这怎么会发生。如果文本字段中没有值,那么它是如何输入php文件中的sql查询段的。是否有任何默认值或在场景后面经过的东西?请解释一下?

如果文本字段中没有值,它将发送

myparam:"

然后,它将检查是否有一个带有"的电子邮件地址,并返回0。

在执行php调用之前,只需检查文本字段是否为空即可解决此问题。

只需检查emailVal的值是否存在。试试这个

$(document).ready(function(){
    $("#email").focusout(function(){
        var emailVal = $('#email').val();
        if($.trim(emailVal)){ //Added the new condition
            $.ajax({
                type: 'post',
                url: 'check_email.php',
                data:  {
                    myparam:emailVal //set it with a parameter name
                },
                success: function( data ) {
                    alert(data);
                    if(data==1){
                        document.getElementById('email_check').innerHTML="<p style='color:red;'>The email you have entered is already exist!</p>";
                    }
                    if(data==0){
                        document.getElementById('email_check').innerHTML="<p style='color:green;'>The email you have entered is available!</p>";}
                }
            });
        }else{ //If empty then nothing will be shown
            $('#email_check').html('');
        }
    });
});