
在内联 `onsubmit` 事件处理器中调用 javascript 函数时,若需访问原生 `event` 对象(如调用 `preventdefault()`),必须显式将 `event` 作为参数传入函数,否则形参将为 `undefined`。
HTML 表单的 onsubmit 属性支持内联 JavaScript 执行,但它不会自动将事件对象注入到被调用函数的作用域中。这意味着以下写法是错误的:
function usernamePasswordLogin(x) {
console.log('x', x); // 输出: x undefined
}尽管浏览器全局存在 event 对象(在部分旧版浏览器中),但该行为已被废弃且不可靠,现代开发中应避免依赖。
✅ 正确做法是:在 onsubmit 属性中显式传入 event(这是浏览器提供的只读变量,代表当前触发的 SubmitEvent):
对应 JS 函数可正常接收并使用事件对象:
立即学习“前端免费学习笔记(深入)”;
function usernamePasswordLogin(e) {
e.preventDefault(); // 阻止表单默认提交行为
console.log('e', e); // e 是完整的 SubmitEvent 实例
console.log('e.target', e.target); // 指向











