Re: HTML::Form not submitting submit button name/value

Gisle Aas <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.lwp
Message-ID <[email protected]>
On Thu, Aug 6, 2009 at 00:43, <[email protected]> wrote:
> If you have a HTML form like
>
>    <form>
>       <input type=submit value="Upload it!" name=n>
>       <input type=text name=t value="1">
>    </form>
>
> then after clicking on the 'submit' button, the browser will send
> a query string like
>
>    ?n=Upload+it!&t=1
>
> to the server. HTML::Form, however, skips the name/value of the submit
> button and just sends
>
>    ?t=1.
>
> Is this intentional or an oversight?

As far as I can remember it was intentional.  The browsers at the time
used to only send ?t=1 when you submitted the form by pressing return
in the text field and both when you clicked on the button.  HTML::Form
supported both these by calling either ->make_request or ->click
method.  If all modern browsers agree that the button value should
always be passed we should change as well.


> P.S.:
>
> So I turned to the libwww test suite and looked at t/html/form.t:
>
>    $f = HTML::Form->parse(<<'EOT', "http://localhost/");
>    <form>
>       <input type=submit value="Upload it!" name=n disabled>
>       <input type=image alt="Foo">
>       <input type=text name=t value="1">
>    </form>
>    EOT
>
>    #$f->dump;
>    ok($f->click->as_string, <<'EOT');
>    GET http://localhost/?x=1&y=1&t=1
>
>    EOT
>
> Is "x=1&y=1" a standard if there's an input image? My browser (FF3) doesn't
> seem to think so.

The standard (HTML 4.01) does not say what to do when the image has no
name.  I think this was picked up from inspecting the behaviour of
some browser but not sure which one.

--Gisle
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.