表单上的Javascript警报问题:警报提示不断出现

时间:2014-12-05 22:06:18

标签: javascript forms validation checkbox

由于NDA,无法提供此项目的链接,但希望我发布的代码足以解决此问题。

我正在做一个简单的PHP联系表单。没什么了不起的。两个文本输入字段和一个用于验证年龄的复选框。如果您未选中此表单,则无法参加竞赛。

我的验证工作......到了一定程度。这是发生了什么。当我取消选中复选框并尝试提交表单时,我会收到一条警告提示,说我不是18岁或以上。 JS是这样的:

if (!document.forms[0].age.checked)
{ 
    alert("Sorry, you must be over 18 to enter...Please check the over 18 box to proceed");  
} 

这样可行,我点击"确定",然后警报提示立即回来!而且我基本上陷入了困境。

任何人都知道如何正确地执行此操作,以便我可以使用该表单?

3 个答案:

答案 0 :(得分:0)

你试过吗

if (!document.forms[0].age.checked) {
  alert("Sorry, you must be over 18 to enter...Please check the over 18 box to proceed");
  return false;
} 

答案 1 :(得分:0)

必须在表单提交事件中检查(此处为内联但应该不引人注意):

<form onsubmit="return validate(this)"...

并做

function validate(theForm) { 
  if (!theForm.age.checked) alert("Please...."); 
  return theForm.age.checked;
}

答案 2 :(得分:0)

您可以尝试以下方式:

    var validateForm = function (e) {
       e.preventDefault();
       var formEl = document.forms[0].age;
       if (formEl.checked) {
           alert("Sorry, you must be over 18 to enter...Please check the over 18 box to proceed");
       }
       e.stopPropagation();
   }

像往常一样实例化该功能,例如:

 var button = document.getElementById('submit');
   button.addEventListener('click', validateForm, false);

Fiddle