0

メソッドvalidateHallticketの戻り値の型として未定義になっている場合は、コードを確認してそれに応じて変更してください。送信ボタンをクリックすると、適切な戻り値の型を取得できるはずです。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <title>4Cubes Site</title>
    <script type="text/javascript">
      function validateForm(form) {
      document.writeln(validateNames(form["firstname"]));         
      document.writeln(validateHallticket(form["hallticket"])); // getting undefined value 
          if (validateNames(form["firstname"]) && validateHallticket(form["hallticket"])) {
              form.sub`enter code here`mit();
          }
          else {
              alert("Please Fill the required Fields");
          }
      }

      function validateNames(inputField) {
          Names_help = document.getElementById('lastname_help');
          if (inputField.value.length == 0) {
              if (Names_help!= null) {
                  Names_help.innerHTML = "Please Enter a validate Name";              
                  return false;
              }
          }
          else {
              Names_help.innerHTML = "";
              return true;
          }

      }

      function validateHallticket(inputField) {

          var regex = /^\d{2}K91A\d{4}$/;
          var rs = regex.test(inputField.value);
          hallticket_help = document.getElementById('hallticket_help');

          if (!regex.test(inputField.value)) {
              if (hallticket_help != null) {
                  hallticket_help.innerHTML = "Enter a valid hallticket";
                  return false;
              }
          }
          else {
              hallticket_help.innerHTML = "";
              return true;
          }

      }
    </script>
  </head>
  <body>
    <center>
      <font face="Arabic Transparent" size="6" color="Teal">4cUBeS College</font>
    </center>

    <br></br>

    <br></br>

    <form method="post" action="servlet.do" name="myform">
      HallTicket:
      <input type="text" name="hallticket" id="hallticket"
             onblur="validateHallticket(this)"></input>
      <span id="hallticket_help" style="color:Red; font-style:italic;"> </span>
      <br></br>
      FirstName:
      <input type="text" name="firstname" id="firstname"
             onblur="validateNames(this)"></input>
      <span id="firstname_help" style="color:Red; font-style:italic;"> </span>
      <br></br>
      LastName:
      <input type="text" name="lastname" id="lastname"
             onblur="validateNames(this)"></input>
      <span id="lastname_help" style="font-style:italic; color:Red;"> </span>

      <center>
        <input type="button" value="SUBMIT" onclick="validateForm(this.form);"></input>

      </center>
    </form>
  </body>
</html>
4

2 に答える 2

1

これは、DOM が読み込まれる前に関数が読み込まれるためです。<script>直前にタグを移動してみてください</body>

ノート

  1. 無効な場合に追加return false;します。
  2. タグのonsubmitイベントにハンドラを追加します。<form>

完全なコード

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <title>4Cubes Site</title>
  </head>
  <body>
    <center>
      <font face="Arabic Transparent" size="6" color="Teal">4cUBeS College</font>
    </center>

    <br></br>

    <br></br>

    <form method="post" action="servlet.do" name="myform" onsubmit="return false;">
      HallTicket:
      <input type="text" name="hallticket" id="hallticket"
             onblur="validateHallticket(this)"></input>
      <span id="hallticket_help" style="color:Red; font-style:italic;"> </span>
      <br></br>
      FirstName:
      <input type="text" name="firstname" id="firstname"
             onblur="validateNames(this)"></input>
      <span id="firstname_help" style="color:Red; font-style:italic;"> </span>
      <br></br>
      LastName:
      <input type="text" name="lastname" id="lastname"
             onblur="validateNames(this)"></input>
      <span id="lastname_help" style="font-style:italic; color:Red;"> </span>

      <center>
        <input type="button" value="SUBMIT" onclick="return validateForm(this.form);"></input>

      </center>
    </form>
    <script type="text/javascript">
      function validateForm(form) {
      document.writeln(validateNames(form["firstname"]));         
      document.writeln(validateHallticket(form["hallticket"])); // getting undefined value 
          if (validateNames(form["firstname"]) && validateHallticket(form["hallticket"])) {
              form.submit();
          }
          else {
              alert("Please Fill the required Fields");
          }
        return false;
      }

      function validateNames(inputField) {
          Names_help = document.getElementById('lastname_help');
          if (inputField.value.length == 0) {
              if (Names_help!= null) {
                  Names_help.innerHTML = "Please Enter a validate Name";              
                  return false;
              }
          }
          else {
              Names_help.innerHTML = "";
              return true;
          }
        return false;
      }

      function validateHallticket(inputField) {

          var regex = /^\d{2}K91A\d{4}$/;
          var rs = regex.test(inputField.value);
          hallticket_help = document.getElementById('hallticket_help');

          if (!regex.test(inputField.value)) {
              if (hallticket_help != null) {
                  hallticket_help.innerHTML = "Enter a valid hallticket";
                  return false;
              }
          }
          else {
              hallticket_help.innerHTML = "";
              return true;
          }
          return false;
       }
    </script>
  </body>
</html>

フィドル: http://jsbin.com/apuyaw/1

于 2013-02-08T10:04:37.263 に答える
0

現在要素の参照を持っていないため、bodyタグを終了する前にスクリプトタグを配置してください

<body>
<script>
your code in here
</script>
</body>
于 2013-02-08T10:05:08.067 に答える