Hi.

When I have a disabled, checked radiobutton and a hidden field, both
with the same name, the disabled radiobutton "succeeds" and it's value
is submitted by HTML::Form.

If I understand section 17.12.1 "Disabled controls"¹ in the HTML 4.01
standard correctly, the radiobutton should not succeed when disabled,
and this following test should be valid (patch against libwww-perl-5.808,
Debian testing):

--- t/html/form.t.orig  2008-02-12 10:33:18.000000000 +0100
+++ t/html/form.t       2008-02-12 10:34:20.000000000 +0100
@@ -3,7 +3,7 @@
 use strict;
 use Test qw(plan ok);
 
-plan tests => 122;
+plan tests => 123;
 
 use HTML::Form;
 
@@ -417,6 +417,20 @@
 ok(eval{$f->find_input("m3", undef, 2)->value(undef)}, undef);
 ok($@ && $@ =~ /^The 'm3' field can't be unchecked/);
 
+# Try a disabled radiobutton:
+$f = HTML::Form->parse(<<EOT, "http://localhost/";);
+<form>
+ <input disabled checked type=radio name=f value=a>
+ <input type=hidden name=f value=b>
+</form>
+
+EOT
+
+ok($f->click->as_string, <<'EOT');
+GET http://localhost/?f=b
+
+EOT
+
 $f = HTML::Form->parse(<<EOT, "http://www.example.com";);
 <!-- from http://www.blooberry.com/indexdot/html/tagpages/k/keygen.htm -->
 <form  METHOD="post" ACTION="http://example.com/secure/keygen/test.cgi"; 
ENCTYPE="application/x-www-form-urlencoded">


(Neither Mozilla nor Microsoft Internet Explorer submits the radiobutton
value, not that that proves anything...)


Does this seem correct? If so, I will see if I can whip up a patch to
fix it (unless someone beats me to it).


  Best regards,

     Adam


¹ <http://www.w3.org/TR/html4/interact/forms.html#adef-disabled>

-- 
 "You know, if the sun was an oboe, what would you do?"       Adam Sjøgren
                                                         [EMAIL PROTECTED]

Reply via email to