javascript - 尽管返回 false,但表单 onsubmit 不起作用
问题描述
我无法弄清楚为什么我的表单提交功能根本不起作用。我正在尝试创建一个验证确认密码的表单,但我无法让 onsubmit 调用我创建的函数,尽管它似乎编写正确。
<div class="container">
<h2 class="py-2 page_title">Change Password for <%= user.username %>:</h2>
<form onsubmit="return confirm_password();" class="form_content" action="/users/edit_password/<%= user._id %>?_method=PUT" method="POST">
<div class="row">
<div class="form-group col-lg-12">
<input class="form-control" name="user[old_password]" placeholder="Old Password" type="password">
</div>
</div>
<div class="row">
<div class="form-group col-lg-12">
<input id="password" class="form-control" name="user[new_password]" placeholder="New Password" type="password">
</div>
</div>
<div class="row">
<div class="form-group col-lg-12">
<input id="confirm_password" class="form-control" name="user[confirm_password]" placeholder="Confirm Password" type="password">
</div>
</div>
<button id="button" class="button zoom" type="submit">Submit</button>
</form>
</div>
功能
function confirm_password(){
console.log("working"); //This doesn't happen, so I know it isn't even being called
if (document.getElementById("password") != document.getElementById("confirm_password")){
alert("Passwords Do Not Match");
return false;
}
return true;
}
我添加了一个警报(“工作”);进入文件以确认它已连接,并且我收到了警报。但是,单击提交后,控制台告诉我“confirm_password”不是一个函数。我也尝试为按钮本身添加一个点击监听器,这也不起作用。有什么明显的我只是想念吗?我尝试在页眉和页脚中添加脚本标记,这似乎没有任何改变。
谢谢。
解决方案
它与您的其中一个 ID 冲突:
<input id="confirm_password"
将函数名称更改为其他名称,例如:
onsubmit="return confirmPassword(event);"
然后:
function confirmPassword(e) {
e.preventDefault();
// your codes here
}
推荐阅读
- pandas - 如何绘制一个国家是一个垃圾箱的直方图
- web-services - 授权标头中不是有效的键=值对(缺少等号)
- procedure - 如何修复:Ada 95 中的“类型转换参数必须是单个表达式”
- flutter - 使用 Flutter 应用程序更改最近应用程序屏幕中使用的背景颜色
- tensorflow - 如何在 tf.keras 中调试自定义指标值
- java - for 循环完成后,为什么小程序屏幕上什么也没有显示?
- vb.net - 如何将基于服务的 SQL 表从 Windows 窗体应用程序导出到 Excel?
- c# - 如何检查 net TCP wcf 服务是否已连接
- python - 调用函数后如何在python中使用inplace?
- java - 我应该使用什么策略将社交网站用户信息存储到 JPA 数据库中?