文本字段的表单验证不起作用?

时间:2016-05-13 19:20:02

标签: javascript html forms

在javascript中,我应该创建一个函数来检查表单中的文本字段是否为空。如果是,并且用户单击“提交”,则不允许用户继续。我在w3schools(http://www.w3schools.com/js/js_validation.asp)找到了我认为合适的解决方案。我检查过的次数比我记忆的要多,而且一切似乎都井井有条,但它不起作用!!相反,当点击提交按钮时,网站会调用我在javascript中使用的不同功能,而不应该这样做...

HTML代码

Other code
<p>
   <form method="post" name="form" action="" onsubmit="return validateName()">
   <label for="fullName">Namn: </label><input id="fullName" class="text" name="namn" type="text"> </input>
</p>
<p>
   <label for="epost">Epost: </label><input id="epost" class="text" name="epost" type="email"> </input>
</p>
<p>
   <input id="submit" type="submit" value="Skicka"> </input>
</p>
</form>
Other code

Javascript代码

function validateName() {
   var a = document.forms["form"]["namn"].value;
   if (a == null || a == "") {
      alert("Name required");
      return false;
   } else {
      return true;
   }
}

单击提交按钮应该在上面调用此函数(validateName),而是调用此函数:

function alert() { 
   return confirm("Do you really wish to leave this website?");
}

我多次查看了我的代码,但却找不到任何看似不合适的地方。你们中间有人发现任何错误吗?也许建议一个解决我的问题的解决方案,以便我的功能正常工作?

如果有人能帮我解决这个问题,我将非常感激!

3 个答案:

答案 0 :(得分:0)

这是因为您在alert函数中调用validateName函数。

function validateName() {
   var a = document.forms["form"]["namn"].value;
   if (a == null || a == "") {
      alert("Name required");  //<- remove this
      return false;
   } else {
      return true;
   }
} 

答案 1 :(得分:0)

View()->render()alert,您正确使用一次,第二次错误使用。只需将您的predefined function功能的名称更改为其他内容,或者只使用alert confirm并忽略intended部分

<强>正确:

function alert

<强>不正确:

alert("Name required");

一个解决方案是:

function alert() { 
   return confirm("Do you really wish to leave this website?");
}

答案 2 :(得分:0)

我认为您可以将此代码替换为:function validateName(){ 要纠正这个,只需输入一个命令: function validateName(this){