【发布时间】:2012-03-29 19:23:00
【问题描述】:
我最近遇到了这样的事情:
<form method="get" action="/somewebdir/script.php"> <input type="radio" name="param0" value="foo" /> <input type="radio" name="param1" value="foo" /> <input type="radio" name="param2" value="bar" /> <input type="radio" name="param2" value="bar" checked="checked" /> </form>
我很好奇是否有办法发送多个键/值,如果发送第二个 param2,没有任何 JS。
这样页面会产生类似的结果:
-
http://domain/somewebdir/script.php?param2=bar&param3=foobar
我将值从"bar" 更改为"bar&amp;param3=foobar",但显然特殊字符(& 和=)将被编码。
有什么想法吗? (再次没有 JS)
隐藏元素不起作用,因为它总是会发送参数,这会对处理程序(script.php)调用的其他东西产生负面影响
【问题讨论】:
-
您可以添加隐藏的输入,其中包含将在提交表单时发送的其他参数的名称和值。但这总会发生,无论选中哪个单选按钮。
-
@Stefan:正是:),试图避免这种情况。想象一下“script.php”真的是一个处理程序,在最好的情况下,它会弄乱地址栏,在最坏的情况下,它会对内容产生影响。在这种情况下,我试图创建一个简单的
debug单选按钮。现在,我正在设置复选框,但为了让用户更清楚,我想创建一个调试列,与之前的单选按钮完全相同,但添加了debug=1(或类似的参数) -
没有javascript就无法做到这一点。您还可以将单选按钮组拆分为 2 个表单,第二个表单有一个额外的
param3输入,值为foobar,但是您将无法使用一个按钮提交这两个表单。 -
我知道这是一个很长的尝试,我可能知道 99% 的语言,但不确定 HTML5 是否有新的东西。