用于表单验证的简单Javascript不起作用

时间:2014-05-16 14:53:33

标签: javascript

所以,我已经写了这个表单和这个简单的javascript来验证用户输入。 问题是,它完全有效,直到我添加第三个函数validateHash,它将hashtag插入到文本框中并检查它是否在开头有一个#标签。 我把代码发送给了一个朋友,他说在他的电脑上工作正常(检查字段是否填满,然后检查标签是否正确),而在我的电脑上它只是跳过每个功能并将数据提交给php页面没有检查任何东西。 我正在使用Firefox,他使用的是Chrome,但我尝试使用后者同样的结果。 代码本身有什么问题吗?

<!doctype html>
<meta charset="utf-8">
<link rel="stylesheet" href="style.css" />
<script language="JavaScript" type="text/javascript">
  function validateForm() {
   if(validate(document.form.song.value) && validate(document.form.hashtag.value))
     if(validateHash(document.form.hashtag.value))
       return true;
    else
    {
      alert("Please fill all the fields");
      return false;
     }
  }

  function validate(text) {
    if(text==null || text=="")
      return false;
    else
      return true;
}

  function validateHash(text) {
    if(text.charAt(0) != "#") {
      alert("Insert hashtag correctly");
      return false;
      }
    else
      return true;
}

</script>

<form action="format.php" name="form" method="post" class="basic-grey" onsubmit="return validateForm()">
  <h1>Anisongs Form
    <span>Fill all the text in the fields</span>
  </h1>

  <label>
    <span>Song lyrics :</span>
    <textarea id="song" name="song" placeholder="Max 120 characters" maxlength="120"></textarea>
  </label>

  <label>
    <span>Anime hashtag :</span>
    <input id="hashtag" type="text" name="hashtag" placeholder="#loghorizon" maxlength="20"/>
  </label>


    <span>&nbsp;</span>
    <input type="submit" class="button" value="Submit" />
    <input type="reset" class="button" value="Cancel" />
</form>

1 个答案:

答案 0 :(得分:0)

嗯,问题是括号。 JS真的很喜欢它们,即使没有它们,它们也不会开始工作。