0

チェックボックスとテキストフィールドを含むhtmlページがあり、JavaScriptはチェックボックスを検証できますが、テキストフィールドは検証できません。どこが間違っているのかわからないので誰か助けてもらえますか

<html>  
    <head>
    <script type="text/javascript">
     function validator()
    {
        var c = document.getElementsByName("chk");
        var k=false;
          for( var i=0; i<c.length; i++ )
          { 
            if( c[i].checked ) 
            {
               k=true;
              return(true);
            }
          }
      if(k){
              return(true);
              }
              else{
                alert("Select one environment");
                return(false);
              }
          var ap = form.getElementById("a1");
          if(ap.value == "" || ap.length == 0)
         {
        alert("Enter the path");
        ap.setfocus();
        return(false);
         }
          else
          {
            return(true);
          }

                    var p = form.getElementById("a2");
          if(p.value == "" || p.length == 0)

         {
        alert("Enter the path");
        form.p.setfocus();
        return(false);
        }


        return(true);
            }


          </script>
      </head>

     <body>
    <form action="/car.java" onsubmit="return validator(this);">
        <br />
        <p>
            <input name="chk"  type="checkbox" />One
            <input name="chk"  type="checkbox" />Two
            <input name="chk"  type="checkbox" />Three
        </p>
        <br />
        <input name="a1" id="a1" size="123" style="width: 766px; height: 21px;" type="text" />
        </p>
        <p>
            <input name="a2" id="a2" size="123" style="width: 766px; height: 21px;" 
                type="text" />
        </p>
        <textarea cols="95" name="status" rows="11"></textarea>
        <input name="sub" size="28" style="width: 156px; height: 29px;" type="button"
       value="Submit" />
        </p>
        </form>
         </body>  
       </html>
4

2 に答える 2

0
if(ap.value == "" || ap.length == 0)

私はあなたが意味していたと思いますap.value.length == 0が、空の文字列をすでにチェックしているので、どちらにしても冗長です。ただif(!ap.value)やります。さらに、returnテキストボックス部分が実行される前に ing を実行しています。

とはいえ、HTML5 フォーム検証の使用を検討する必要があります。それはよりきれいで、そのような問題を防ぎます。

于 2013-04-07T02:58:40.997 に答える