0

我希望它会发出一个颜色列表。在html中,如果输入是列表,它们应该是相同的名称,但无线电输入的名称相同,它们将在同一个组中,所以如何分隔每个无线电组,但所有组仍然具有相同的名称,然后我可以使用循环去在服务器端获取列表的所有值?

此外,在客户端,我需要检查每个组是否被选中,那么如何使用javascript或jquery来选择所有单选组,而不是所有单选按钮。

<form method="post">
Car A: <input type="radio" name="color[]"/>red <input type="radio" name="color[]"/>yello<br/>
Car B: <input type="radio" name="color[]"/>red <input type="radio" name="color[]"/>yello<br/>
Car C: <input type="radio" name="color[]"/>red <input type="radio" name="color[]"/>yello<br/>
<input type="submit"/>
</form>
4

2 回答 2

5

每个组的所有单选按钮都应该有不同的名称。

Car A: 
<input type="radio" name="color1"/>red 
<input type="radio" name="color1"/>yello<br/>

Car B: 
<input type="radio" name="color2"/>red 
<input type="radio" name="color2"/>yello<br/>

Car C: 
<input type="radio" name="color3"/>red 
<input type="radio" name="color3"/>yello<br/>

检查是否选择了所有组:

if ($('input[type="radio"]:checked').length == 3)
    validAction();
else
    invalidAction();

您可以将选择器限制为仅其name属性以 开头的元素color

if ($('input[type="radio"][name^="color"]:checked').length == 3)
于 2012-04-25T13:12:41.933 回答
1

组的每个成员必须具有相同的名称。每个组必须有不同的名称。

如果您想迎合 PHP 在循环中呈现数据的命名约定,请使用如下约定:group[0]第一组group[1],第二组,依此类推。这为您提供了客户端上的唯一名称,而 PHP 会将它们合并到一个数组中。

在客户端,您可以执行以下操作:

var i = 0, myform = /* something */;
while (myform.elements['group[' + i + ']']) {
    var group = myform.elements['group[' + i + ']'];
    /* Loop over HTML Element Collection to make sure one item is `checked`. */
}
于 2012-04-25T13:14:18.320 回答