Javascript 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);
}
相关文章:
- 如何做到这一点,使代码在不传递条件后执行函数
- 如果条件匹配,则停止执行脚本
- If语句只执行第一个条件并运行其他条件,但没有结果
- Javascript同时执行If和Else条件(PHP)
- 如何在条件成立后停止程序执行
- 将JavaScript函数分配给提交按钮,该按钮应有条件执行
- 基于浏览器窗口大小的条件 JavaScript 执行
- 基于条件执行功能
- 执行条件映射联接
- 在 jQuery / Javascript 中的 bind() 事件之后执行条件
- Javascript 在执行其内容后执行条件
- 如何使用 str.search() 或类似方法在 jQuery 中执行条件
- 默认情况下,在启动时执行条件AND中的一行
- 查找时差并执行条件
- 对文本输入执行条件
- 插入和执行条件javascript
- 单击任一项目时执行条件
- ASP.. NET MVC -如何在javascript中执行条件c#代码
- 通过执行条件函数提高速度
- 如何对XHR执行条件语句