Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript onBlur不工作,以及如何连接javascript文件_Javascript_Jquery_Validation_Pug - Fatal编程技术网

javascript onBlur不工作,以及如何连接javascript文件

javascript onBlur不工作,以及如何连接javascript文件,javascript,jquery,validation,pug,Javascript,Jquery,Validation,Pug,我有两个javascript文件,用于验证电子邮件地址 validate.js: function checkEmail(userEmail) { var email = userEmail var emailFilter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; if (emailFilter.test(email.value)) { //alert('Pleas

我有两个javascript文件,用于验证电子邮件地址

validate.js:

function checkEmail(userEmail) {

    var email = userEmail
    var emailFilter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

    if (emailFilter.test(email.value)) {
    //alert('Please provide a valid email address');
    //email.focus;
    return true;
    }
    else{
        return false
    }
}
navigation.js编辑:

$(document).ready(function() {

//ADDED IMPORTS
var imported = document.createElement('script');
imported.src = 'lib/validation.js';
document.head.appendChild(imported);


    console.log("DOCUMENT IS READY!");

    var viewsWrapper = $("#views-wrapper");
    var loginButton = $("#login-button");
    var registerButton = $("#register-button");

    // Login Link
    // TODO: Unclear if needed
    $("ul li.login").click(function() {
        $.get('/login', function(data) {
            viewsWrapper.html(data);
        });
    });

    $('#usernamefield').blur(function() {
        var sEmail = $('#usernamefield').val();
        if ($.trim(sEmail).length == 0) {
            alert('Please enter valid email address');
            e.preventDefault();
        }
        if (checkEmail(sEmail)) {
            alert('Email is valid');
        }
        else {
            alert('Invalid Email Address');
            e.preventDefault();
        }
    });
…后面有更多代码,但不相关

我也在使用此jade模板:

login.jade:

form(action="")
    key EMAIL
        input(type="text", name="username", id="usernamefield")
        p hello world
    br
    key PASSWORD
        input(type="text", name="password", id="passwordfield")
        p hello world

    br
    input(type="submit", name="loginButton", id="login-button", value="LOGIN")
我的问题是,当我在电子邮件字段中输入内容时,我在任何情况下都不会收到警告消息。是否允许我只需分离javascript文件并调用在navigation.js中的validate.js中定义的方法?我尝试将validate.js代码放在navigation.js中,但即使这样,它也不起作用。我想把这些文件分开。我错过了什么明显的东西吗?我希望这样,一旦用户输入电子邮件并离开该字段,就会出现一条消息,警告电子邮件是否有效


谢谢你的帮助

您已经将电子邮件的值发送到checkemail函数中。因此,在validate.js中的checkEmail函数中,删除函数checkEmail第二行中的email.value

function checkEmail(userEmail) {
    var email = userEmail
    var emailFilter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

    if (!emailFilter.test(email)) {
        //alert('Please provide a valid email address');
        email.focus;
        return false;
    }
}

问题出在模糊事件还是检查邮件上?尝试在模糊后放置一个警报或console.log,确保对输入失去关注。单独的文件不应该是个问题。还检查了控制台中的错误吗?

JavaScript字符串没有值字段

之后

sEmail变成了一个字符串

您正在将此字符串传递给checkEmail方法,并尝试从字符串中获取值:

if(!emailFilter.test(email.value)) {//...}
取代

if (!emailFilter.test(email)) {//...}

我不是在validate.js中调用它。这只是一个javascript文件,只有checkEmail方法。我正在navigation.js中使用它。我刚刚移除了onBlur,但它仍然不工作。就是这样。谢谢。事实上,只有当我的checkEmail函数在my navigation.js中,而不是在validation.js中时,这才有效。原因是什么?显示脚本导入,请阅读编辑,我在navigation.js的前几行添加了导入。为什么您不以与navigation.js相同的方式导入validate.js?我猜您正在使用?
if (!emailFilter.test(email)) {//...}