簡體   English   中英

Javascript真實條件未執行

[英]Javascript true condition not being executed

永遠不會執行true條件,而總是執行false條件。 我似乎無法發現我到底在做什么錯。

<script>
$(document).ready(function(){
  var userEmail = $('input#userEmail').val();
  $("#email-submit").click(function(){
    //False condition
    if(!validateEmail(userEmail)) { 
      $('#emailErrors').text("Enter a valid Email");
    }
    //true conidition
    if(validateEmail(userEmail)) { 
      alert("true");
      $.post('includes/loginFunction.php', {userEmail: userEmail}, function (data){
        $('#emailErrors').text(data);
      });
    }
  });
});
function validateEmail($email) {
   var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
   return emailReg.test( $email );
} 
</script>

您需要檢查input#userEmail你的點擊處理程序 否則,您僅存儲執行$(document).ready()回調時輸入的值。

$("#email-submit").click(function(){
  var userEmail = $('input#userEmail').val();

  if (!validateEmail(userEmail)) { 
    $('#emailErrors').text("Enter a valid Email");
  } else {
    // true condition
  }
}

如上所述,您還可以使用else來代替兩次調用validateEmail

此外,在validateEmail函數中,您需要聲明參數$email 通常,在變量之前添加$前綴的約定是在緩存jQuery(或其他庫)對象時。 您可能應該將其切換為簡單的email

https://jsfiddle.net/uf6Ld70f/

$(document).ready(function () {
    $("#email-submit").click(function () {
        var userEmail = $('input#userEmail').val();
        //true conidition
        if (validateEmail(userEmail)) {
            alert("true");
            $.post('includes/loginFunction.php', {
                userEmail: userEmail
            }, function (data) {
                $('#emailErrors').text(data);
            });
        // false
        }else{
            $('#emailErrors').text("Enter a valid Email");
        }
    });
});

function validateEmail($email) {
    var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
    return emailReg.test($email);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM