Asp.net 表格取消按钮问题

Asp.net 表格取消按钮问题,asp.net,html,forms,Asp.net,Html,Forms,我有一个移动站点的工作表单。我将“取消”按钮更改为按钮的图像样式,现在在移动浏览器中单击它时,表单验证会弹出。取消验证消息后,站点返回上一页。当用户单击“取消”按钮时,表单没有被验证,但当我将类型从“按钮”切换到“图像”时,表单得到验证,我不知道为什么 之前: <pre> input type="button" onclick="history.back();" value="Cancel" </pre> <input type="image" />

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

之前:

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

输入type=“button”onclick=“history.back();“value=“Cancel”
之后:


输入type=“image”onclick=“history.back();”
src=“images/Mobile\u Form\u Button\u 01\u Cancel.png”

实际上是一个“提交”按钮作为图像。更多信息


要使其工作,请将其更改回
,并使用CSS对其进行样式设置。

之所以会发生这种情况,是因为在
表单
元素中,充当了一种特殊类型的提交按钮。这意味着默认情况下将进行任何脚本或HTML定义的验证。在契约中,
input type=button
元素创建一个没有默认操作的按钮;任何操作都必须编写脚本。(这通常使它在静态HTML中成为一个糟糕的选择:当浏览器中禁用脚本时,无论您在按钮上单击多少次,该按钮都将静止不动。)

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


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

似乎您忘记问您的
问题了@西葫芦:请用你的问题编辑你的问题:)你可以删除你的评论我认为“为什么”这个词是一个间接的问题。
<input type="image" />