Функция JS не запускается после нажатия кнопки: неперехваченная ошибка типа: «functionName» не является функцией

#javascript #html #function

#javascript #HTML #функция

Вопрос:

Я перепробовал все разные пути к файлам, чтобы попытаться получить доступ к helperFunctions.js файл, но, похоже, ничего не работает. Каждый раз, когда я нажимаю кнопку зарегистрировать пользователя, он говорит, что функция, которую я вызываю, не существует / не является функцией. Это означает, что helperFunctions.js доступ к файлу не осуществляется.

Html-часть, которая добавляет путь к файлу и вызывает функцию из helperFunctions.js .

 <body>
    //other important core js files
    <script src="./js/helperFunctions.js" type="text/javascript"></script>
</body>

    <script>
    
            $(document).ready(function(){   
                        $('#registerUser').click(function() {
                            // call API to register user
                            registerUser();
                    });
                });
    </script>
 

HelperFunctions.js файл и функция

 function registerUser() 
{

    console.log('step 1');
    //document.getElementById('label-error').style.display="none";
    //document.getElementById('label-mismatch').style.display="none";
    //document.getElementById('label-passwordsyntax').style.display="none";
    
    var userID = document.getElementById('email').value;
    var pwd = document.getElementById('password').value;
    var re_password = document.getElementById('repassword').value;
    var fname = document.getElementById('firstName').value;
    var lname = document.getElementById('lastName').value;
    
        console.log('step 1.1');
    
    if ((userID=='') || (pwd=='') || (re_password=='') || (fname=='') || (lname=='')) || (re_password==''))
        return false;

    var passw=  /^[A-Za-z]w{7,14}$/;
    
    
    if (pwd.match(passw) == null)
    {
        //document.getElementById('label-passwordsyntax').style.display="inline";
        return false;
    }       
    
    console.log('step 2');
    
    if (pwd != re_password)
    {
        alert(pwd   "|"   re_password);
        document.getElementById('label-mismatch').style.display="inline";
        return false;
    }
    */
    
    var postObj = {
        email: userID,
        Pwd: pwd,
        rePwd: re_password,
        firstName: fname,
        lastName: lname
    };

console.log('step 3');

    var req = new XMLHttpRequest();
    req.open('POST', 'https://localhost:44303/api/JSON/registerUser', true);
    req.setRequestHeader('Content-Type', 'application/json');
    
    req.onreadystatechange = function() { // Call a function when the state changes.
        if (this.readyState === XMLHttpRequest.DONE amp;amp; this.status === 200) {

            if (req.response=="-1")
                alert('user already exists');
                //document.getElementById('label-error').style.display="inline";
            
            if (req.response=="1") 
                alert('user created successfully');
                //location.href='login.html?action=success';        
        }
    }
    
    console.log('step 4');
    
    req.send(JSON.stringify(postObj));
    console.log('step 5');
    
    return false;
}
 

Комментарии:

1. сколько шагов выполняется, а также где вызывается эта функция functionName ?

2. Никакие шаги не выполняются, потому что он даже не распознает функцию, вот почему я думаю, что он даже не достигает helperFunction.js досье. Также functionName = registerUser() .

3. именно поэтому это не сработает … если у меня есть function a(){return 1} , а потом я говорю let x=a() , a==1 и a is not a function

4. но кем ТЫ хочешь functionName быть

5. Ну, во-первых, во фрагменте, который я вижу неправильно */ использованным прямо перед postObj этим, его следует удалить. Во-вторых (lname=='')) , имеет две закрывающие круглые скобки ) , одна из которых должна быть удалена. Могут быть ошибки такого рода?