首页 > 解决方案 > 检查表单域

问题描述

我在检查表单字段时遇到问题。我创建了一些表单,现在我想检查表单字段。我写了一些 html 代码,但它并没有真正起作用,我不知道为什么。这是代码:

<html>
<fieldset>
<legend>Formular</legend>
<head><title>Formular</title>
</head>
<body>
<script type="text/javascript">

    function checkform(){

    var strFehler='';

    if (document.forms[0].Betreff.value==""){

      strFehler += "Feld ist leern";}

    if (document.forms[0].Nachricht.value==""){

      strFehler += "Feld ist nicht ausgefülltn";}

    if (strFehler.length>0) {

      alert("Festgestellte Probleme: nn"+strFehler);

      return(false);
    }}
    </script>
    <form>
    <label for="text">Betreff</label>
    <input type="text">
    </label> <br>
    <label for="textarea">Nachricht</label>
    <textarea cols="50" rows="10">
    </textarea> <br>
    <button type="button" onclick="checkform">Senden</button>
    </form>
    </body>
    </fieldset>
    </html>

标签: javascripthtml

解决方案


这里有几点:

  • 你没有checkform()正确调用。必须这样做:onclick="checkform()"
  • document.forms[0].Betreff.value==""并且document.forms[0].Nachricht.value==""会产生语法错误。要正确获取值,请为您的输入分配一个 id,或者像我一样通过标签名称获取它们

function checkform() {

  var strFehler = '';

  if (document.getElementsByTagName('input')[0].value == "") {

    strFehler += "Feld ist leern";
  }

  if (document.getElementsByTagName('textarea')[0].value == "") {

    strFehler += "Feld ist nicht ausgefülltn";
  }

  if (strFehler.length > 0) {

    alert("Festgestellte Probleme: nn" + strFehler);

    return (false);
  }
}
<form>
  <label for="text">Betreff</label>
  <input type="text">
  <br>
  <label for="textarea">Nachricht</label>
  <textarea cols="50" rows="10"></textarea> <br>
  <button type="button" onclick="checkform()">Senden</button>
</form>


推荐阅读