javascript - 输入 `type=image` onclick 解决方案有效,但为什么呢?

标签 javascript html css image button

我在使用带有 onclick 的输入 type=image 标签来运行一些 javascript 时遇到了问题。与输入 type=button 完美配合,但是,当用于图像输入时,它会运行更改 DOM 的脚本(将图像添加到 div),但会清除回来在几分之一秒内转到默认页面,添加的图像显示为短暂的闪光然后消失。

所以,使用谷歌,我最终找到了解决方案。我改变了:

<input type="image" id="greenGoButton" src="Images2/goButton.png" alt="Submit" onclick="loopForm(document.thisForm); getPlates(document.thisForm);">

到:

<input type="image" id="greenGoButton" src="Images2/goButton.png" alt="Submit" onclick="loopForm(document.thisForm); getPlates(document.thisForm); return false;">

因此,添加一个 return false; 语句修复了它。

但是为什么?这让我很烦。为什么它在按钮上没有 return false 的情况下工作,但在使用图像时却没有?互联网上肯定到处都是由图像制成的按钮。

最佳答案

默认情况下,type='image' 通过在点击处理程序末尾添加 return false 创建一个提交封闭表单并重新加载页面的按钮,您是在告诉 Javascript 阻止提交表单并重新加载页面的默认行为。

您还可以访问点击处理程序中的事件对象并对其调用 preventDefault() 而无需在最后执行 return falseevent.preventDefault() 也做同样的事情。

简而言之,在事件处理程序结束时返回 false 可防止默认行为发生

关于javascript - 输入 `type=image` onclick 解决方案有效,但为什么呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53982251/

相关文章:

javascript - 一个字段上的语义 ui 表单验证规则是否可以以不同的字段为条件?

html - 无法将 div 的高度设置为 100%,因为高度重置为 0px

ajax - ajax 中没有使用 base64 编码

html - 使用 CSS3 缩小图像

html - 页脚几乎占满整个页面

css - Neo4j 2.0.1 graphstyle.grass 用于多个标签

javascript - 使用 jQuery.getScript 导入多个文件

javascript - 有没有办法通过 ajax 提高正常的 Django 表单验证?

javascript - 使用带有 HTML 自定义元素的模板

javascript - 无法从javascript访问隐藏的输入框值