JavaScript表单验证无法识别';如果';标准

JavaScript表单验证无法识别';如果';标准,javascript,forms,Javascript,Forms,我有一个简单的表格,使用带有CSS星星的单选按钮收集五星评级 我正在尝试添加一个非常简单的JavaScript脚本,以在没有选择星星的情况下停止提交评级(目前正在这样做,将0星评级添加到MySQL) 我对JavaScript非常陌生,现在才真正了解它 我有这个: <script> function validateForm() { var x=document.forms["userparkrating"]["rating"].value; if (x==0 || x=="")

我有一个简单的表格,使用带有CSS星星的单选按钮收集五星评级

我正在尝试添加一个非常简单的JavaScript脚本,以在没有选择星星的情况下停止提交评级(目前正在这样做,将0星评级添加到MySQL)

我对JavaScript非常陌生,现在才真正了解它

我有这个:

<script>
function validateForm()
{
var x=document.forms["userparkrating"]["rating"].value;
if (x==0 || x=="")
  {
  alert("You must rate this park before submitting");
  return false;
  }
}
</script>

函数validateForm()
{
var x=document.forms[“userparkrating”][“rating”]。值;
如果(x==0 | | x==“”)
{
警告(“您必须在提交前对此公园进行评分”);
返回false;
}
}
在页面的head标记之间,如果没有选择星号,则应该显示一条错误消息,但没有选择星号,php/mySQL进程将正常运行。有人能告诉我怎么了吗

使用的表格如下:

<form name="userparkrating" action="userparkreview.php?park_id=<?=$park_id?>" onsubmit="return validateForm()" method="post">
    <input type="hidden" value="<?=$park_id?>" name="park_id">

<div class="star-rating">

            <input class="rb0" id="Ans_1" name="rating" type="radio" value="0" checked="checked" />                       
            <input class="rb1" id="Ans_2" name="rating" type="radio" value="0.5" />
            <input class="rb2" id="Ans_3" name="rating" type="radio" value="1" />
            <input class="rb3" id="Ans_4" name="rating" type="radio" value="1.5" />    
            <input class="rb4" id="Ans_5" name="rating" type="radio" value="2" />    
            <input class="rb5" id="Ans_6" name="rating" type="radio" value="2.5" />    
            <input class="rb6" id="Ans_7" name="rating" type="radio" value="3" />
            <input class="rb7" id="Ans_8" name="rating" type="radio" value="3.5" />    
            <input class="rb8" id="Ans_9" name="rating" type="radio" value="4" />
            <input class="rb9" id="Ans_10" name="rating" type="radio" value="4.5" />
            <input class="rb10" id="Ans_11" name="rating" type="radio" value="5" />

            <label for="Ans_1" class="star rb0l" onclick=""></label>
            <label for="Ans_2" class="star rb1l" onclick=""></label>
            <label for="Ans_3" class="star rb2l" onclick=""></label>
            <label for="Ans_4" class="star rb3l" onclick=""></label>
            <label for="Ans_5" class="star rb4l" onclick=""></label>
            <label for="Ans_6" class="star rb5l" onclick=""></label>
            <label for="Ans_7" class="star rb6l" onclick=""></label>
            <label for="Ans_8" class="star rb7l" onclick=""></label>
            <label for="Ans_9" class="star rb8l" onclick=""></label>
            <label for="Ans_10" class="star rb9l" onclick=""></label>
            <label for="Ans_11" class="star rb10l last" onclick=""></label>

            <label for="Ans_1" class="rb" onclick="">0</label>
            <label for="Ans_2" class="rb" onclick="">1</label>
            <label for="Ans_3" class="rb" onclick="">2</label>
            <label for="Ans_4" class="rb" onclick="">3</label>
            <label for="Ans_5" class="rb" onclick="">4</label>
            <label for="Ans_6" class="rb" onclick="">5</label>
            <label for="Ans_7" class="rb" onclick="">6</label>
            <label for="Ans_8" class="rb" onclick="">7</label>
            <label for="Ans_9" class="rb" onclick="">8</label>
            <label for="Ans_10" class="rb" onclick="">9</label>
            <label for="Ans_11" class="rb" onclick="">10</label>

            <div class="rating"></div>
            <div class="rating-bg"></div> 
        </div>
<br>
<input type="submit" value="Submit Rating" name="submit">

</form>
你试过了吗

如果(x==0 | |!x)

编辑

var radios=document.getElementsByName(“评级”);
对于(var i=0;i
您无法访问

您需要使用一个循环遍历每个radio元素,以检查哪个元素被选中

function validateForm() {
    var ratings=document.forms["userparkrating"]["rating"];
    var rating = 0;
    for (var i = 0; i < ratings.length; i++) {
        if (ratings[i].checked) {
            rating = ratings[i].value;
        }
    }
    if (not(0<rating && rating<=5)) {
      alert("You must rate this park before submitting");
      return false;
    }
    return true;
}
函数validateForm(){
var评级=文件。表格[“userparkrating”][“rating”];
var评级=0;
对于(变量i=0;i如果(不是)(0So,调试器告诉您
x
的值是什么?我怎么知道?正如我提到的,我刚刚开始学习javascript…您的浏览器在其开发工具中的某个地方有一个javascript调试器。谷歌搜索“[browsername]javascript调试器”查看如何使用它。现在显示错误消息,但对于任何值,即使选择了星号
function validateForm() {
    var ratings=document.forms["userparkrating"]["rating"];
    var rating = 0;
    for (var i = 0; i < ratings.length; i++) {
        if (ratings[i].checked) {
            rating = ratings[i].value;
        }
    }
    if (not(0<rating && rating<=5)) {
      alert("You must rate this park before submitting");
      return false;
    }
    return true;
}