javascript - 使用 Bootstrap 的 Node Express 无法触发按钮单击事件
问题描述
Node 和 ExpressJs 的新手。我正在使用 ExpressJS 和 Bootstrap 创建一个 Nodejs 应用程序,如下所示:<br/>
- 使用 VSCode。
<br/>
- 工具:使用 npm 安装 express 和 npm init 创建项目
问题:<br/>
单击 btnLogin 时,没有触发事件或没有执行代码。请帮助解决这个问题。在 VSCode 中,如何关联 $?
--- 目录设置
TestProj<br/>
|<br/>
|- node_modules<br/>
|- main.js<br/>
|- index.js<br/>
|<br/>
|- views<br/>
|- design_Files<br/>
|- signup.html<br/>
-------- 节点的 index.js:
const express = require('express');
const app = express();
const path = require ('path');
app.use(express.static(path.join(__dirname, 'views')));
var router = express.Router();
app.use('/', router);
router.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'views', 'signup.html'));
});
app.listen(5000,() => console.log('Server started'));
----------------------- Html 和 main.js
window.$ = window.jQuery
$("#btn-login").click(function() {
var mailformat = /^w+([.-]?w+)*@w+([.-]?w+)*(.w{2,3})+$/;
var email = $("#email").val();
var password = $("#password").val();
if(email != "" && password != "")
{
if(email.match(mailformat))
{
//var result = firebase.auth().signInWithEmailAndPassword(email,password)
result.catch(function(error)
{
var errorCode = error.code;
var errorMessage = error.message;
window.alert("Message :" + errorMessage);
});
} else {
window.alert("Please enter a valid email");
}
}else {
window.alert("please fill out all required fields");
}
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sign up</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha256-3edrmyuQ0w65f8gfBsqowzjJe2iM6n0nKciPUp8y+7E=" crossorigin="anonymous"></script>
<!-- MATERIAL DESIGN ICONIC FONT -->
<link rel="stylesheet" href="design_files/fonts/material-design-iconic-font/css/material-design-iconic-font.min.css">
<!-- STYLE CSS -->
<link rel="stylesheet" href="design_files/css/style.css">
</head>
<body>
<div class="wrapper" style="background-image:url('design_files/images/registerback.jpg')">
<div class="inner">
<div class="image-holder">
<img src="design_files/images/registration-form-1.jpg">
</div>
<form action="">
<h3> Register</h3>
<div class="form-wrapper">
<input id="email" type="email" placeholder="Email Address" class="form-control">
<i class="zmdi zmdi zmdi-email"></i>
</div>
<div class="form-wrapper">
<input id="password" type="password" placeholder="Password" class="form-control">
<i class="zmdi zmdi zmdi-lock"></i>
</div>
<div class="form-wrapper">
<input id="confirmPassword" type="password" placeholder="Confirm Password" class="form-control">
<i class="zmdi zmdi zmdi-lock"></i>
</div>
<div class="form-group container-login100-form-btn">
<button id="btn-signup" type="button">
Register
<i class="zmdi zmdi-arrow-right"></i>
</button>
</div>
<div class="w-full text-center" style="margin-top:49%; font-size: 15px;">
<a href="signin.html" class="text-dark">
Already have an account?
</a>
</div>
</form>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
<scipt src="main.js"></script>
</body>
</html>
解决方案
您已向不存在的元素添加了单击侦听器。您的注册按钮的 id 与侦听器不同。
$("#btn-signup").click(function(e) {
e.preventDefault();
var mailformat = /^w+([.-]?w+)*@w+([.-]?w+)*(.w{2,3})+$/;
var email = $("#email").val();
var password = $("#password").val();
if(email != "" && password != "")
{
if(email.match(mailformat))
{
//var result = firebase.auth().signInWithEmailAndPassword(email,password)
result.catch(function(error)
{
var errorCode = error.code;
var errorMessage = error.message;
window.alert("Message :" + errorMessage);
});
} else {
window.alert("Please enter a valid email");
}
}else {
window.alert("please fill out all required fields");
}
});
推荐阅读
- r - 为R中的两个变量制作for循环
- angular - 使用 Angular 重定向 URI 回调后从 URL 中获取 OAuth 令牌
- autodesk-forge - Autodesk Viewer 问题和从转换到 SVF 时缺少元素
- angularjs - AngularJS 在 div 中使用类取决于 var 值
- swift - 从图像视图设置视图背景
- python - 如何让背景向下滚动
- javascript - 如何将参数解析为 JavaScript 中函数参数的字符串
- apache-spark - 在 Spark 集群中,是每台机器有一个驱动进程还是每个集群有一个驱动进程?
- amazon-web-services - 带有条件的 IAM 标签策略以防止创建资源
- asp.net-mvc - ASP.NET Core 如何显示来自 www/images 的图像