You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

原生JS密码验证函数在jQuery绑定点击事件中失效问题咨询

为什么jQuery绑定点击事件后我的密码验证函数无法运行?

我编写了一段用于密码验证的原生JavaScript代码,但在切换到jQuery绑定点击事件时遇到了问题。以下是我的验证函数:

function validatePassword(){ 
  var symbols = "!"; 
  var password0 = document.getElementById("password").value; 
  if(password0.includes(symbols)){ 
    window.alert("sorry"); 
  } else{ 
    window.alert("good job!"); 
  } 
}

当使用原生JS方式绑定点击事件时,代码可正常运行:

document.getElementById("register").onclick = function() { 
  validatePassword(); 
};

但使用以下jQuery方式绑定点击事件时,代码无法运行:

$( document ).ready(function() { 
  $('[data-toggle="tooltip"]').tooltip({ 
    'placement': 'top', 
  }); 
  $('#register').click(function() { 
    ('#password').validatePassword(); 
  }); 
}); 
}); // 这里多了一个闭合括号

请问有人能解释原因吗?


问题出在这两个关键错误上:

  1. 错误的函数调用逻辑
    你在jQuery点击回调里写的('#password').validatePassword();完全不符合语法规则——validatePassword是你定义的全局普通函数,并不是jQuery对象的内置方法,也不需要绑定到#password元素上调用。你只需要像原生方式那样,直接调用validatePassword()就可以触发验证逻辑。

  2. 多余的闭合括号导致语法错误
    你的jQuery代码末尾多了一个额外的});,$(document).ready()只需要一对闭合的});来结束这个初始化函数。多余的括号会直接触发语法错误,导致整个jQuery代码块无法执行,打开浏览器开发者控制台(按F12)就能看到对应的报错提示。

修正后的jQuery代码:

$( document ).ready(function() {
  // 初始化tooltip组件
  $('[data-toggle="tooltip"]').tooltip({ 
    'placement': 'top' 
  });
  // 绑定点击事件并调用验证函数
  $('#register').click(function() {
    validatePassword();
  });
});

另外补充一点:确保页面已经正确引入了jQuery库,Bootstrap的tooltip组件依赖jQuery和Bootstrap JS文件,如果没有正确引入,tooltip功能也会失效,但这不是验证函数无法运行的直接原因。

内容的提问来源于stack exchange,提问作者Yamen Zakhour

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:50:51