![](/img/trans.png)
[英]Javascript Else Statement Being Executed Despite If Statement Being True
[英]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.