检查是否通过Request.Form单击了提交IMAGE

时间:2012-01-02 11:20:05

标签: asp.net html webforms

如何检查是否通过Request.Form点击了提交图片?

以下检查是否通过Request.Form单击了提交按钮,如果单击则返回提交按钮的值:

<form action="Default.aspx" runat="server" method="post" id="newform">
<input type="submit" id="submit" value="Submit!" runat="server" />
</form>

<%
if (Request.Form["submit"] != null) //TRUE
{
    Response.Write("Submit button pushed");
}

Response.Write(Request.Form["submit"]); //Returns "Submit!"
%> 

以下检查是否通过Request.Form单击了提交图像,但是在单击图像后它没有返回任何值:

<form action="Default.aspx" runat="server" method="post" id="newform">
<input type="image" id="subimg" src="solar_image.gif" alt="Can't show image" value="Submit Image!" runat="server"/>
</form>

<%
if (Request.Form["subimg"] != null) //FALSE
{
    Response.Write("Image Submit button clicked!");
}

Response.Write(Request.Form["subimg"]); //Doesn't return "Submit Image!"  
%>

2 个答案:

答案 0 :(得分:1)

以上代码适用于IE 9和Chrome。我可以复制的唯一方法是将Firefox用作浏览器。

这个链接更加清楚Firefox 4.0 beta — as well as IE and Opera — do not send name/value for input type=”image”; only .x and .y coordinates are sent.

的问题

以下检查适用于我测试的每个浏览器:

//Checking both x and y co-ordinates to be doubly safe
Request.Form["subimg.x"] != null && Request.Form["subimg.y"] != null

答案 1 :(得分:0)

根据MDN documentation

  

“Gecko 2.0只在点击时发送x和y坐标,而不是   元素的名称/值“

尝试打印出Request.Form。如果响应中有x和y,则可以检测到单击该图像的方式。