0

我一直在努力让 javascript 验证使用单选按钮的基于 WordPress 的 HTML 表单。我终于想出了一个有点冗长但有效的解决方案——至少在 IE 和 Chrome 中——但是,它在 Firefox 中不起作用(这表明我的代码有点草率)。我认为我的单选按钮参考是问题所在。任何人都可以帮助我做错了什么 - 除了使用低效的验证方法:-)?

我的表格的简化版本:

<script>
function validateForm()
{
var aa=document.forms["personalise"]["motivation"]["1a"];
var ab=document.forms["personalise"]["motivation"]["1b"];
var ac=document.forms["personalise"]["motivation"]["1c"];
var ad=document.forms["personalise"]["motivation"]["1d"];
var ae=document.forms["personalise"]["motivation"]["1e"];
if (!(aa.checked == true || ab.checked == true || ac.checked == true || ad.checked == true || ae.checked == true))
 {
  alert("Question 1 must be completed");
  return false;
 }
}
</script>
<form name="personalise" action="insertdatatest.php" onsubmit="return validateForm()" method="post">
1. Are you seriously planning to quit </b>:&nbsp;&nbsp;
    <input id="1a" type="Radio" title="" name="motivation" value="1" />  Within the next 2 weeks
    <input id="1b" type="Radio" title="" name="motivation" value="2" />  Within the next 30 days
    <input id="1c" type="Radio" title="" name="motivation" value="3" />  Within the next 3 months
    <input id="1d" type="Radio" title="" name="motivation" value="4" />  No, I am not currently planning to quit
    <input id="1e" type="Radio" title="" name="motivation" value="5" />  I have already quit
<input type="submit" value = "Submit">
</form>

我是网络开发的真正新手,所以任何帮助将不胜感激。

4

2 回答 2

0

再次感谢 TheDeadMedic 的帮助。实际上,我发现了一种稍微不同的方法,它适用于所有三个为多个单选按钮问题设置的浏览器(因此是 blOK 条目)。如果它对其他人有用,代码如下。弗利克斯。

<script>
function validateForm() { 
var inputs;
var i;
var blOK;
 blOK = false;
 inputs = document.getElementsByName( "motivation" ); 
 for (i=0;i<inputs.length;i++)
 {
   if ( inputs[i].checked   ) {
                                blOK = true ;
        break ;           
                                }
}
        if (!blOK) 
        {
alert( "Question 1 must be completed" ); 
return false;  
        }
</script>
于 2012-10-22T15:16:30.617 回答
0

这是一种更清洁的做事方式:

function validateForm() {
    var inputs = document.getElementsByName( "motivation" );
    for ( var i = 0; i < inputs.length; i++ ) {
        if ( inputs[i].checked ) return true;
    }

    alert( "Question 1 must be completed" );
    return false;
}
于 2012-10-20T09:58:56.437 回答