javascript - 当输入名称=确认给出确认不是函数时,Javascript返回确认()
问题描述
我的代码在控制台中显示此错误:
未捕获的类型错误:确认不是函数
我可以通过将输入重命名为“确认”以外的内容来解决它。
为什么命名输入与 JavaScript 的确认功能冲突?
<form action="" method="POST">
<input type="text" name="confirm">
<input type="submit" onclick="return confirm('Text')">
</form>
解决方案
在 JavaScript 中,输入元素的名称成为关联表单对象的属性。在您的情况下,名为“confirm”的输入成为其形式的属性,它隐藏了从object继承的confirm
方法。window
window.confirm
=> form.confirm
<input type="text" name="confirm">
=>form.confirm
正如Dai在上面的评论中提到的,您可以使用window.confirm()
来确保您访问对象的confirm
方法window
。
<form action="" method="POST">
<input type="text" name="confirm">
<input type="submit" onclick="return window.confirm('Text')">
</form>
或者,如您的问题中所述,使用不同的输入名称:
<form action="" method="POST">
<input type="text" name="confirmation">
<input type="submit" onclick="return confirm('Text')">
</form>
如需更多参考,另请参阅:
警告:避免为表单元素指定与表单的内置属性相对应的名称,因为这样您将使用对相应输入的引用来覆盖预定义的属性或方法。
推荐阅读
- angular - 从服务器 Angular 获取错误对象
- python - 更改时区和语言
- multithreading - 多个 tensorflow 推理可以在一个 GPU 上并行运行吗?
- javascript - 使用 setter 设置属性添加属性而不是设置它
- docker - 无法从 Apache Beam 中的本地模拟器读取 Pub/Sub 消息
- vba - VBA - 如何找到从效果创建的形状的名称?
- c# - 如何在 Xamarin.Forms 中直播 .m3u8 视频文件
- javascript - 为重命名的解构变量分配默认值
- vue.js - 渲染后过滤 2 个不同的组件
- c++ - 向量元素类型的特征稀疏矩阵的 CoeffRef 误差