我在使用带有 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 false
; event.preventDefault()
也做同样的事情。
简而言之,在事件处理程序结束时返回 false
可防止默认行为发生
关于javascript - 输入 `type=image` onclick 解决方案有效,但为什么呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53982251/