第二次编辑:我的天哪,我是个白痴!我一直专注于javascript,而完全忽略了html中缺少“结果”项的问题……感谢那些提供帮助的人!

编辑:到目前为止,谢谢。我纠正了人们指出的错误,但仍然不喜欢我。 :(我的html在下面。

我正在html.net上学习一个教程(关于Javascript的第16课),并且已经按照应该的方式编写了它。我什至加载了工作教程页面的javascript文件并进行了比较(是相同的)...然后将其复制并粘贴到我的文件中只是为了确定它仍然无法正常工作。如果有人可以提出意见,那将是很棒的。代码如下:
    

<html>

  <head>
    <title>Lesson 16: form validation</title>
    <script type="text/javascript" src="lesson16.js"></script>
  </head>

  <body>
    <h1>Lesson 16: Form validation</h1>
    <form id="myForm" action="#" method="post">
    <fieldset>
      <p><label for="txtName">Name: </label>
         <input type="text" id="txtName" name="txtName" />
      </p>
      <p><label for="txtEmail">Email: </label>
         <input type="text" id="txtEmail" name="txtEmail" />
      </p>
      <p><input type="submit" value="Submit" /></p>
    </fieldset>
    </form>
  </body>

</html>

function init()
{
  var myForm = document.getElementById("myForm");
  myForm.onsubmit = validate;
}

onload = init;

function validate()
{
  var name = document.getElementById("txtName").value;
  var email = document.getElementById("txtEmail").value;
  var isRequiredNameSet = false;
  var isRequiredEmailSet = false;
  var isEmailValid = false;

  var message = "";
  isRequiredNameSet = validateRequired(name);
  isRequiredEmailSet = validateRequired(email);
  isEmailValid = validateEmail(email);

  if (isRequiredNameSet && isRequiredEmailSet && isEmailValid)
  {
    message = "Thank you, you know how to follow instructions...good for you.";
  }
  else if (! isRequiredNameSet)
  {
    message = "Please, enter a name. First thing and you got it wrong...";
    writeMessage(message);
    return false;
  }
  else if (! isRequiredEmailSet)
  {
    message = "Please, enter an email...come on, it's not that hard...";
    writeMessage(message);
    return false;
  }
  else if (! isEmailValid)
  {
    message = "A valid email, numb nuts...with an @ symbol and a .com or whatever...GODS!!";
    writeMessage(message);
    return false;
  }
  alert(message);
}

function validateRequired(input)
{
  var isValid = false;
  if (input.length == 0)
  {
    isValid = false;
  }
  else
  {
    isValid = true;
  }
  return isValid;
}

function validateEmail(email)
{
  var isValid = false;
  if (email.indexOf("@") == -1 || email.indexOf(".") == -1)
  {
    isValid = false;
  }
  else
  {
    isValid = true;
  }
  return isValid;
}

function writeMessage(text)
{
  var paragraph = document.getElementById("result");

  if (paragraph.firstChild)
  {
    paragraph.removeChild(paragraph.firstChild);
  }
  paragraph.appendChild(document.createTextNode(text));
}

最佳答案

您在IsRequiredNameSet中有else if(在validate函数中),但应为isRequiredNameSet

注意:您可以将validateRequired() ...更改为function validateRequired(input) { return !!input.length; }

10-02 17:48
查看更多