单选按钮可以携带多个值

时间:2017-10-26 15:29:14

标签: html forms

是否可以在单选按钮提交而不是单个值中传递键值对?

常规无线电领域:

<input type="radio" name="foo" value="bar" id="fooBar" required="true" checked>

但也许是这样的:

<input type="radio" name="['key1', 'key2', 'key3']" value="['value1, 'value2', 'value3']" id="fooBar" required="true" checked>

1 个答案:

答案 0 :(得分:1)

不是这样。

value属性包含一个字符串。提交表单时,该字符串将被发送到服务器。

您可以使用序列化技术将更复杂的数据结构存储为字符串(例如:JSON),然后在服务器上对其进行解码。

<input type="radio" name="example" value='{ "key1": "value1", "key2": "value2", "key3": "value3" }'>

然后像:

sub process_form :Local {
    my ($self, $catalyst) = @_;
    my $radio_value = $catalyst->request->parameters->{example};
    my $decoded_radio_value = decode_json $radio_value;
    $c->log->debug("Value of key1 is " . $decoded_radio_value->{key1});
}

您还可以将所有数据存储在服务器上,然后在value属性中添加某种标识符(例如可以是哈希键或数据库行ID)。

<input type="radio" name="example" value='44'>

然后像:

sub process_form :Local {
    my ($self, $catalyst) = @_;
    my $radio_value = $catalyst->request->parameters->{example};
    my $database_row = $catalyst->model("ExampleTable")->find($radio_value);
    $c->log->debug("Value of key1 is " . $database_row->key1);
}