JavaScript表单验证框突出显示

时间:2017-04-15 05:02:02

标签: javascript jquery html

JavaScript的:

function validateForm(){

  var getNoun = document.formPG.fNoun.value;
  var getVerb = document.formPG.fVerb.value;
  var getPronoun = document.formPG.fPronoun.value;
  var getAdverb = document.formPG.fAdverb.value;
  var getAdjective = document.formPG.fAdjective.value;
  var getSillyWord = document.formPG.fSillyWord.value;
  var getMagic = document.formPG.fMagic.value;

  if((getNoun) === ""){
    alert("You entered a number value, please enter a Noun.");
    document.formPG.fNoun.focus();
    document.getElementById('iNoun').style.borderColor = "red";
    return false;
  }

  //write story to [document].html
paragraph = "There was once a " + getAdjective + " magician who roamed the wild terrains of " + getAdverb + ".<br>";
paragraph += "The magician " + getNoun + " cast the mighty spell " + getMagic + " around the " + getSillyWord + ".<br>" + getPronoun + " knew there was only one way to win the war - " + getVerb + ".";


document.write(paragraph);
}

HTML:

<body>
  <div class="container">
  <h1>Mad Lib</h1>

    <form name="formPG" onsubmit="validateForm()" method="post">
      Noun: <input type="text" name="fNoun" id="iNoun"><br>
      Pronoun: <input type="text" name="fPronoun" id="iPronoun"><br>
      Verb: <input type="text" name="fVerb" id="iVerb"><br>
      Adverb: <input type="text" name="fAdverb" id="iAdverb"><br>
      Adjective: <input type="text" name="fAdjective" id="iAdjective"><br>
      Silly Word: <input type="text" name="fSillyWord" id=""iSillyWord"><br>
      Magic Spell: <input type="text" name="fMagic" id="iMagic"><br>
      <input type="submit" value="submit">
    </form>
    <br>
  <script src="madLib_v2.js"></script>

  </div>
</body>

问题是每当我点击&#34;提交&#34;按钮页面点击document.getElementById('iNoun').style.borderColor = "red";然后消失。该页面立即刷新,该框仅在几分之一秒内突出显示。我希望它保持在那里直到页面基本刷新或直到它们正确。

2 个答案:

答案 0 :(得分:2)

  1. 使用return validateForm()。然后仅阻止页面刷新。
  2. 删除元素属性中不需要的空格和引号。赞id=""iSillyWord"-extra quotestype="submit "-unwanted space
  3. function validateForm() {
    
      var getNoun = document.formPG.fNoun.value;
      var getVerb = document.formPG.fVerb.value;
      var getPronoun = document.formPG.fPronoun.value;
      var getAdverb = document.formPG.fAdverb.value;
      var getAdjective = document.formPG.fAdjective.value;
      var getSillyWord = document.formPG.fSillyWord.value;
      var getMagic = document.formPG.fMagic.value;
    
      if ((getNoun) === "") {
        alert("You entered a number value, please enter a Noun.");
        document.formPG.fNoun.focus();
        document.getElementById('iNoun').style.borderColor = "red";
        return false;
      }
    
      //write story to [document].html
      paragraph = "There was once a " + getAdjective + " magician who roamed the wild terrains of " + getAdverb + ".<br>";
      paragraph += "The magician " + getNoun + " cast the mighty spell " + getMagic + " around the " + getSillyWord + ".<br>" + getPronoun + " knew there was only one way to win the war - " + getVerb + ".";
    
    
      document.write(paragraph);
      
    }
    <body>
      <div class="container">
        <h1>Mad Lib</h1>
    
        <form name="formPG" onsubmit="return validateForm()" method="post">
          Noun: <input type="text" name="fNoun" id="iNoun"><br> Pronoun: <input type="text" name="fPronoun" id="iPronoun"><br> Verb: <input type="text" name="fVerb" id="iVerb"><br> Adverb: <input type="text" name="fAdverb" id="iAdverb"><br> Adjective:
          <input type="text" name="fAdjective" id="iAdjective"><br> Silly Word: <input type="text" name="fSillyWord" id="iSillyWord">
          <br> Magic Spell: <input type="text " name="fMagic" id="iMagic"><br>
          <input type="submit" value="submit">
        </form>
        <br>
    
    
      </div>
    </body>

答案 1 :(得分:1)

在表单提交时阻止默认行为。一旦有效,使用ajax提交表单

<强> JS

function validateForm(e){
  e.preventDefault();
 // rest of the code
}

<强> HTML

将事件对象传递给函数

onsubmit="validateForm(event)"

DEMO