Javascript真实条件未被执行

时间:2015-08-25 20:42:57

标签: javascript php

永远不会执行真条件,而是始终执行false条件。我似乎无法找到我到底做错了什么。

NSDate

2 个答案:

答案 0 :(得分:3)

您需要检查点击处理程序中的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

答案 1 :(得分:0)

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);
}