我的表单中包含可变数量的单选按钮:
<input id='create' name="post[]" type="radio" value="<? echo $newphrase; ?>" />
我希望对其进行验证,以确保至少选择了一个按钮。我有这段代码:
function valbutton(thisform) {
myOption = -1;
for (i=thisform.post.length-1; i > -1; i--) {
if (thisform.post[i].checked) {
myOption = i; i = -1;
}
}
if (myOption == -1) {
alert("You must select a radio button");
return false;
}
alert("You selected button number " + myOption
+ " which has a value of "
+ thisform.myradiobutton[myOption].value);
thisform.submit(); // this line submits the form after validation
}
这适用于验证,但未设置$ _POST值。 理论上这条线:
for (i=thisform.post.length-1; i > -1; i--) {
if (thisform.post[i].checked) {
应如下所示:
for (i=thisform.post[].length-1; i > -1; i--) {
if (thisform.post[][i].checked) {
但这显然不会因为错误而起作用。
答案 0 :(得分:1)
解决使用Ed Daniels将“CHECKED”设置为单选按钮的想法。即使按钮数量可变,它也会“检查”生成的最后一个按钮,这在我的情况下已经足够了。
答案 1 :(得分:0)
我不确定你为什么要使用数组语法(name =“post []”)来获取一组单选按钮。你只需要在服务器上获得一个值,即选中的单选按钮。
(对于一堆复选框,可以检查任何组合,这是有道理的。)
单选按钮中的name =“post”,PHP中的$ _POST ['post']应该可以正常工作。我怀疑它也会修复你的Javascript问题。
答案 2 :(得分:0)