javascript - 表单提交输入未运行我的 onClick 功能
问题描述
我创建了一个简单的登录表单,并希望在提交表单后运行一个 js 函数。但是,当我单击提交时没有任何反应。HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CARD GAME</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<script src="index.js"></script>
<form>
Username: <input type="text" id="htmlUsername"><br><br>
Password: <input type="password" id="htmlPassword"><br>
<input type="submit" onclick="login()">
</form>
</body>
</html>
JS:
function login(){
console.log("here")
}
解决方案
按下提交按钮时是否重新加载浏览器窗口?如果是,那么您的表单确实已提交。
您看不到console.log
语句的输出,因为默认情况下,浏览器窗口会在表单提交时重新加载。您可以使用禁用此默认行为event.preventDefault()
HTML:
<form>
Username: <input type="text" id="htmlUsername"><br><br>
Password: <input type="password" id="htmlPassword"><br>
<input type="submit" onclick="login(event)">
</form>
JS:
function login(event){
event.preventDefault();
console.log("here")
}
建议改进:
不要在元素上使用
onclick
属性,而是使用在按钮上添加点击事件侦听器。button
.addEventListener()
将
script
元素移动到结束body
标记之前。
替代解决方案
另一种方法是保留日志。在浏览器开发者工具的“网络”选项卡中,勾选“保留日志”复选框输入。console.log
即使在提交表单时重新加载浏览器窗口,这样做也会保留语句的输出。
有关如何在开发者工具中启用此选项的详细信息,请访问:
推荐阅读
- reactjs - 如何等待 redux 状态更改然后在 React 中渲染页面
- javascript - 为什么我在 codeigniter 3 中没有收到来自 ajax 数据的响应?
- nginx - nginx 作为 web 服务器前面的反向代理
- bash - 通过skippng搜索或不跳过文件
- javascript - Discord.js 在一条消息中检查多个单词
- python - 在 PyQT5 中,如何从列表中获取最近按下的按钮
- instagram-api - 使用 Instagram API 上传视频时出错
- python - 具有评分准确性的 RandomizedSearchCV 会导致错误:评分失败。这些参数在此训练测试分区上的分数将设置为 nan
- java - java - 如何在Java运行时获取从抽象类继承的正确实例?
- r - 使用 kernlabs lssvm 生成预测