On 28.11.2004 15:59, Sylvain Wallez wrote:

In our CForms Action.java [1] there is a comment about an IE bug with appending 'x' and 'y' to the name of the input field when it is of type image:

Special workaround an IE bug for <input type="image" name="foo"> :
in that case, IE only sends "foo.x" and "foo.y" and not "foo" whereas standards-compliant browsers such as Mozilla do send the "foo" parameter.


1. I "found out" IE *is* standards compliant [2]:
When a pointing device is used to click on the image, the form is submitted and the click coordinates passed to the server. The x value is measured in pixels from the left of the image, and the y value in pixels from the top of the image. The submitted data includes name.x=x-value and name.y=y-value where "name" is the value of the name attribute, and x-value and y-value are the x and y coordinate values, respectively.

Well, what's the meaning of "the submitted data *includes* name.x..."?

The paragraph above that one says it "creates a graphical submit button". Following the "submit button" link says that it "submits a form" which in turns links us to the "Form submission" paragraph [3], where "Successful controls" says that "every successful control has its control name paired with its current value as part of the submitted form data set" and that "If a form contains more than one submit button, only the activated submit button is successful."

So, my interpretation is that clicking an input of type image makes it a successful control and that therefore its name/value pair should be sent, and that *additionally* the x and y coordinates should be included.

Makes sense.

2. My Mozilla 1.7 behaves the same way, both in quirks and standards compliance mode.

Uh? I initially tested image inputs with no problems with Mozilla and then added this workaround after testing with IE.


I just made a quick test with Firefox 1.0 on my Mac, and it does send the input name also:

<html>
<head><title>test</title></head>
<body>
 <form action="test-img.html" method="GET">
   <input name="text"/>
   <input type="image" src="pic.jpg" name="img" value="Click"/>
 </form>
</body>
</html>

Clicking on the image leads me to file://.../test-img.html?text=blah&img.x=42&img.y=36&img=Click

So, where's the truth?

Hmm, tested it without a value and got the impression Mozilla behaves like IE, but you are right, with a value img=Click is sent too. But - and this is at least inconsequent then - Mozilla does send a request param for a submit button if the button has no value. It does not do this for the image:


<html>
<head><title>test</title></head>
<body>
 <form action="test-img.html" method="GET">
   <input type="image" src="pic.jpg" name="img" value="click"/>
   <input type="submit" name="button" value="click"/>
 </form>
</body>
</html>

@value=click:
file://../test-img.html?button=click
file://../test-img.html?img.x=105&img.y=84&img=click

without @value:
file://../test-img.html?button=
file://../test-img.html?img.x=88&img.y=27

Joerg

Reply via email to