【问题标题】:Radiobutton array (HTML)单选按钮数组 (HTML)
【发布时间】:2012-07-22 10:00:50
【问题描述】:

如果我有两个同名文本类型的输入,像这样:

<input type="text" name="task" id="task1" value="begin">
<input type="text" name="task" id="task2" value="end">

当我提交表单时,task 会自动作为数组发送(task[0]='begin'task[1]='end')。 由于许多原因,这非常有用,例如我不必担心序列化结果,我可以使用 sortable 重新排序,并且当我提交时它已经按照正确的顺序。

但如果我想使用单选按钮,我必须已经使用多个具有相同名称的输入。

有没有办法让单选按钮保持这个功能?


例如:

<input type="text" name="task" id="task1" value="begin">
<input type="radio" name="time" id="time11" value="early" checked="checked">
<input type="radio" name="time" id="time12" value="noon">
<input type="radio" name="time" id="time13" value="late">

<input type="text" name="task" id="task2" value="end">
<input type="radio" name="time" id="time21" value="early">
<input type="radio" name="time" id="time22" value="noon" checked="checked">
<input type="radio" name="time" id="time23" value="late">

我希望在提交时得到time[0]='early'time[1]='noon'

【问题讨论】:

  • 你为什么需要它?您知道单选按钮的值。如果你发送了所有的值,你怎么知道选择了哪一个?
  • 不太明白你的问题,但添加了一个示例。
  • 您使用的是什么服务器语言?
  • 它是 asp.net mvc 但我相信 task[0]/task[1] 也适用于 js/dom
  • 我不知道为什么这个问题被关闭了。在我看来,这里有一个有效的问题:“HTML 会将具有相同名称的文本输入发送到数组序列化。单选输入需要相同的名称来关联一组单选按钮。单选按钮响应是否可以序列化为数组类似于文本输入会发生什么?” +1 重新打开。

标签: html forms radio-button


【解决方案1】:

试试这个:

<input type="text"  name="task[0]" id="task1"  value="begin">
<input type="radio" name="time[0]" id="time11" value="early" checked="checked">
<input type="radio" name="time[0]" id="time12" value="noon">
<input type="radio" name="time[0]" id="time13" value="late">

<input type="text"  name="task[1]" id="task2"  value="end">
<input type="radio" name="time[1]" id="time21" value="early">
<input type="radio" name="time[1]" id="time22" value="noon" checked="checked">
<input type="radio" name="time[1]" id="time23" value="late">

然后你会得到:task[0]=begintime[0]=earlytask[1]=endtime[1]=noon

【讨论】:

  • 如果你不想使用'begin'和'end',使用任何你想要的字符串。只需将括号中的键放在名称属性中即可。
  • 这取决于 PHP 的表单解析算法。我认为 ASP.NET 对表单数据名称中的 [] 字符没有任何特殊意义。
  • @Quentin,如果 ASP.NET 不将其作为数组本地处理,那么您仍然拥有 time[start] 的唯一属性,作为字符串。所以代码仍然可以运行,即使它不能作为原生数组访问。
  • @kingjeffrey — 没错,但自动获取原生数组是问题的关键。
  • @Quentin,并且 OP 已经引用了他从文本框中获取本机数组,因此必须假设他正在使用一种服务器端脚本语言(如 PHP),它以预期的方式处理它这个答案。
猜你喜欢
  • 2012-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-09
  • 1970-01-01
  • 1970-01-01
  • 2012-01-31
相关资源
最近更新 更多