【问题标题】:javascript Validation gives me error alert even when all buttons checked即使检查了所有按钮,javascript验证也会给我错误警报
【发布时间】:2012-11-04 21:22:24
【问题描述】:

我已使用此代码在表单上设置验证,以便在未检查所有按钮时提醒我! ..但是当我尝试它时,即使所有按钮都被选中,它也会给我错误警报..请帮助?

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>

    <script type="text/javascript">
function validateForm(formData){
    if(!this.v1.checked && !this.v2.checked && !this.v3.checked){
        alert('answer all questions please');
        return false;
    }
       return true;
    }
    </script>

    <title></title>
</head>

<body>
    <form name="form1" action="mark.php" onsubmit="return validateForm()" method="post"> 
        <input type="radio" value="1" id="v1" name="v1"> <input type="radio" value="1" id="v2" name="v2"> <input type="radio" value="1" id="v3" name="v3"> <input type="submit" value="Send">
    </form>
</body>
</html>

【问题讨论】:

    标签: javascript validation button radio


    【解决方案1】:

    看看this指的是什么,使用console.log(this)

    如果您使用getElementById() 获取单选按钮可能会更好,请看这里的示例。

    How can I check whether a radio button is selected with JavaScript?

    同时改变你的 if 语句的逻辑,使用这个:

    if (!document.getElementById('v1').checked || !document.getElementById('v2').checked || !document.getElementById('v3').checked)
    

    我在 jsfiddle.net 中修改了您的脚本,使其可以正常工作: http://jsfiddle.net/Xh5HW/1/

    【讨论】:

    • @user1806136,我认为选择正确的元素是个问题。似乎您并没有真正检查 if 语句中的单选按钮。请仔细查看上面的链接。
    • @user1806136,你的if语句的逻辑也有问题。我添加了您可以在我的答案中使用的代码。
    • 我已经使用了 document.getElementById,因为你说它仍然不起作用,也没有给我警告框,它只是转到下一页!
    【解决方案2】:
    var btn = valButton(form.group1);
    if (btn == null) alert('No radio button selected');
    else alert('Button value ' + btn + ' selected');
    

    查看http://javascript.about.com/library/blradio.htm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多