来自PHP $ _POST表单的JS无线电验证

时间:2011-02-07 12:24:50

标签: php javascript validation forms

我的表单中包含可变数量的单选按钮:

<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) {

但这显然不会因为错误而起作用。

3 个答案:

答案 0 :(得分:1)

解决使用Ed Daniels将“CHECKED”设置为单选按钮的想法。即使按钮数量可变,它也会“检查”生成的最后一个按钮,这在我的情况下已经足够了。

答案 1 :(得分:0)

我不确定你为什么要使用数组语法(name =“post []”)来获取一组单选按钮。你只需要在服务器上获得一个值,即选中的单选按钮。

(对于一堆复选框,可以检查任何组合,这是有道理的。)

单选按钮中的

name =“post”,PHP中的$ _POST ['post']应该可以正常工作。我怀疑它也会修复你的Javascript问题。

答案 2 :(得分:0)