0

我有一个移动网站的工作表。我将取消按钮更改为按钮的图像样式,现在在移动浏览器中单击它时会弹出表单验证。关闭验证消息后,站点返回上一页。当用户单击取消按钮时,表单没有被验证,但是当我将类型从“按钮”切换到“图像”时,表单得到验证,我不知道为什么。

前:

<pre>
    input type="button" onclick="history.back();" value="Cancel"
</pre>

后:

<pre>
    input type="image" onclick="history.back();"
    src="images/Mobile_Form_Button_01_Cancel.png"

</pre>
4

2 回答 2

0
<input type="image" />

实际上是一个“提交”按钮作为图像。更多信息在这里(W3C 学校)

要使其正常工作,请将其改回<input type="button" />并使用 CSS 设置样式。

于 2012-11-22T16:27:57.310 回答
0

发生这种情况的原因是在form元素内部,input type=image充当了一种特殊的提交按钮。这意味着默认情况下将进行任何脚本化或 HTML 定义的验证。简而言之,一个input type=button元素创建一个没有默认操作的按钮;任何动作都必须编写脚本。(这通常使它在静态 HTML 中成为一个糟糕的选择:当在浏览器中禁用脚本时,无论您单击多少按钮,该按钮都会坐在那里并且什么也不做。)

有不同的方法可以避免这种情况。一种方法是return false在代码末尾添加onclick,防止默认操作。另一种是根据您的喜好使用input type=button或设置样式。button还有一个是只有一个img具有属性的元素onclick(但最好由 JavaScript 生成)。

最好的选择是删除元素。从可用性的角度来看,您不应该重复浏览器功能——除非您正在编写 HTML5 应用程序而不是网页。

于 2012-11-22T16:51:12.167 回答