是否有可能,选择表单中的一个选项返回2个具有2个名称的值? 我有f.e。:
<form name="form1" action="Servlet1" method="get">
<select class="class1" name="name1" onChange="javascript:document.form1.submit();">
<option value="value1">Test1</option>
<option value="value2">Test2</option>
</select>
</form>
如果有人在Test1上点击,我希望表单返回name1 = value1&amp; name2 = value2,而不仅仅是一个值。
谢谢!
答案 0 :(得分:0)
您可以采取多种方法。
最简单的只是通过在服务器上查找来处理它。
my %values = (
value1 => { foo => 1, bar => 2 },
value2 => { foo => 3, bar => 4 },
)
my $select_value = $q->param('name1');
my $foo = $values{$select_value}->{foo};
my $bar = $values{$select_value}->{bar};
或者,使用结构化数据格式(例如JSON)并将其编码为值:
<option value="{"bar":2,"foo":1}">Test1</option>
然后在服务器上对其进行解码:
my $select_value = $q->param('name1');
my $decoded_value = from_json($select_value);
my $foo = $decoded_value->{foo};
my $bar = $decoded_value->{bar};
您还可以应用一堆客户端JavaScript,在提交表单时使用DOM生成隐藏输入,但我不建议采用这种方法。
答案 1 :(得分:0)
这可能不是最好的方法,但您始终可以将两个值都放在一个值属性中。例如,您可以尝试:
<select>
<option value="name1.name2">Test1
<option value="...">Test2
</select>
然后,您将在javascript中解析出不同的值。
这是一个有趣的事实:您不需要HTML 5中的标签。浏览器会为您关闭元素!