Я пишу код для проверки пароля, хотя меня немного путают jquery и jscript.
Это моя функция:
function validatePassword(){
var symbols = "!";
var password0 = document.getElementById("password").value;
if (password0.includes(symbols)){
window.alert("sorry");
}
else{
window.alert("good job!");
} }
Код отлично работает, когда:
document.getElementById("register").onclick = function() { validatePassword(); };
Однако он не запускается, если:
$( document ).ready(function() {
$('[data-toggle = "tooltip"]').tooltip({
'placement': 'top',
});
$('#register').click(function() {
('#password').validatePassword();
});
}); });
кто-нибудь может объяснить почему?
Присмотритесь к тому, что делает ('#password'). - он не использует $ и не выбирает какой-либо элемент. Но зачем его так называть, если работает наоборот? Просто используйте $('#register').click(function() { validatePassword(); });



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Код, который вы ищете,
$( document ).ready(function() {
$('[data-toggle = "tooltip"]').tooltip({
'placement': 'top',
});
$('#register').click(validatePassword);
});
Вы хотели ввести $('#password').validatePassword(), но это тоже не сработает - элемент с идентификатором «пароль» не имеет свойства validatePassword. Это просто функция, которую можно вызывать по имени.
Интересный факт, поскольку validatePassword хранится как глобальная переменная, на самом деле он хранится в window. Итак, $('#register').click(validatePassword) и $('#register').click(window.validatePassword) подойдут.
Это не метод jQuery, и вы не хотите его использовать.