
const result = document.getElementById('result');
const userNameInput = function(event) {
// 阻止表单的默认提交行为
event.preventDefault();
let AmountPaid = +document.getElementById('AmountPaid').value;
let threeMonthGoal = document.getElementById('threeMonthGoal').value;
// 根据 AmountPaid 的值来设置 result 的文本内容
result.textContent = +AmountPaid < 100 ? 'Amount must contain at least 3 characters' : AmountPaid;
}
// 监听表单的 submit 事件
document.getElementById("goalForm").addEventListener('submit', userNameInput);代码解释:
- <form id="goalForm">: 使用 <form> 标签将输入框和按钮包裹起来,并赋予其唯一的 ID goalForm,方便 JavaScript 代码进行操作。
- event.preventDefault();: event 对象是 submit 事件的回调函数 userNameInput 的参数。preventDefault() 方法用于阻止表单的默认提交行为,即阻止页面刷新。
- document.getElementById("goalForm").addEventListener('submit', userNameInput);: 这行代码将 userNameInput 函数注册为 goalForm 表单的 submit 事件监听器。当表单提交时,userNameInput 函数会被调用。
- 数据获取和验证: 获取 AmountPaid 和 threeMonthGoal 的值,并进行简单的验证。
- 结果展示: 根据验证结果,将相应的信息显示在 <p id='result'></p> 元素中。
注意事项
- event.stopPropagation(): 在某些情况下,可能需要使用 event.stopPropagation() 方法来阻止事件冒泡。事件冒泡是指事件从触发元素开始,逐级向上传播到父元素的过程。
- 数据类型: AmountPaid 使用 + 强制转换为数字,以便进行数值比较。请根据实际需求选择合适的数据类型。
- 错误处理: 在实际应用中,应该添加更完善的错误处理机制,例如对用户输入进行更严格的验证,并向用户提供更友好的错误提示。
- 表单验证: 建议使用 HTML5 的表单验证属性,例如 required、minlength、maxlength 等,来对用户输入进行初步的验证。
- 安全性: 永远不要信任用户的输入。在服务器端对表单数据进行验证和过滤,以防止恶意攻击。
总结
通过将相关元素包裹在 <form> 标签中,并监听 submit 事件,我们可以有效地解决 JavaScript 表单提交按钮失效的问题。同时,需要注意阻止表单的默认提交行为,并根据实际需求进行数据验证和错误处理。 遵循这些最佳实践,可以构建更加健壮和用户友好的Web应用程序。










