0

こんにちは、フォームを送信して検証エラーが発生した後にフォームがクリアされないようにする方法があるかどうか疑問に思っています。

明確にするために、私は複数のフォームを持っています.ユーザーが送信するときにjsを使用して検証しています.検証エラーがすべてのフォームのリセットを警告するとき、それを止める方法はありますか??? 「はい、javascript である必要があります」

<script>
                                                                    //calender dropdown menu 

var monthtext=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sept','Oct','Nov','Dec'];

function populatedropdown(dayfield, monthfield, yearfield,init){
 var dayfield=document.getElementById(dayfield);
 var monthfield=document.getElementById(monthfield);
 var yearfield=document.getElementById(yearfield);
 var today=(init)?new Date():new Date(yearfield.value*1,monthfield.value*1)
 dayfield.options.length=0;
 for (var i=0; i<new Date(today.getFullYear(),today.getMonth()+1,-1).getDate(); i++) dayfield.options[i]=new Option(i+1,i+1)
 dayfield.selectedIndex=(init)?today.getDate()-1:0; //select today's day
 if (init){
  for (var m=0; m<12; m++) monthfield.options[m]=new Option(monthtext[m],m);
 }
 monthfield.selectedIndex=(init)?today.getMonth():0; //select today's day
 if (init){
  var thisyear=today.getFullYear()
  for (var y=0; y<20; y++)  yearfield.options[y]=new Option(thisyear, thisyear++)
 }
}
                                                                // function validate
 function validate_form ()
{
    valid = true;
                                                                // validate name
       if ( document.input.name.value == "" )
        {
                alert ( "Please enter your name" );
                valid = false;
        }
                                                                // validate address
                if ( document.input.address.value == "" )
        {
                alert ( "Please enter your address address" );
                valid = false;
        }                                                       
                                                                // validate suburb town
                if ( document.input.town.value == "" )
        {
                alert ( "Please enter your Suburb or town" );
                valid = false;
        }


                                                            // validate postcode        

        var y = document.getElementById('postcode').value;
       if(isNaN(y)||y.indexOf(" ")!=-1)
       {
          alert("Postcode must be in numbers.");
          document.getElementById('postcode').focus();
          return false;
       }

       if (y.length>4 || y.length<4)
       {
            alert("Postcode should be 4 digit");
            document.getElementById('postcode').focus();
            return false;
       }  

                                                                // validate home phone
 var y = document.getElementById('hphone').value;
       if(isNaN(y)||y.indexOf(" ")!=-1)
       {
          alert("Home Phone number must be in numbers.");
          document.getElementById('hphone').focus();
          return false;
       }

       if (y.length>10 || y.length<10)
       {
            alert("Home Phone number should be 10 digit");
            document.getElementById('hphone').focus();
            return false;
       }
                                                                // validate work phone
        var y = document.getElementById('wphone').value;
       if(isNaN(y)||y.indexOf(" ")!=-1)
       {
          alert("work Phone number must be in numbers.");
          document.getElementById('wphone').focus();
          return false;
       }

       if (y.length>10 || y.length<10)
       {
            alert("Work Phone number should be 10 digit");
            document.getElementById('wphone').focus();
            return false;
       }
                                                                // validate fax
        var y = document.getElementById('fax').value;
       if(isNaN(y)||y.indexOf(" ")!=-1)
       {
          alert("Fax number must be in numbers.");
          document.getElementById('fax').focus();
          return false;
       }

       if (y.length>10 || y.length<10)
       {
            alert("Fax Phone number should be 10 digit");
            document.getElementById('fax').focus();
            return false;
       }
                                                                // validate email   
        {
        var x=document.forms["input"]["email"].value;
        var atpos=x.indexOf("@");
         var dotpos=x.lastIndexOf(".");
         if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
         {
         alert("Not a valid e-mail address");
        return false;
        }
        }    
        {

                                                                // validate radio buttons
 var o = document.getElementById('1');
 var t = document.getElementById('2');

if ( (o.checked == false ) && (t.checked == true ) )
 {
                                                                // validate alternative address
                        if ( document.input.street.value == "" )
        {
                alert ( "Please enter alternative address address" );
                valid = false;
        }                                                       
                                                                // validate suburb town
                if ( document.input.suburb.value == "" )
        {
                alert ( "Please enter alternative Suburb or town" );
                valid = false;
        }
                                                                // validate postcode    

       var y = document.getElementById('postcode2').value;
       if(isNaN(y)||y.indexOf(" ")!=-1)
       {
          alert("Postcode must be in numbers.");
          document.getElementById('postcode2').focus();
          return false;
       }

       if (y.length>4 || y.length<4)
       {
            alert("Alternative Postcode should be 4 digit");
            document.getElementById('postcode2').focus();
            return false;
       }                                                                                            
                                                                    // validate message box
        var o = document.getElementById('card');
        if ( (o.checked == true ))
        {
        if ( document.input.message.value == "" )
        {
                alert ( "Please enter message" );
                valid = false;                                                  
        }
        return valid;
        }
     }
        }                                           

}
</script>
    <input type="submit" value="Submit" />
4

1 に答える 1

0

ID 値を数字で始めないでください。

以下は、フォーム送信の結果をキャプチャして影響を与える簡単な例です。

最も一般的な間違いの 1 つはreturn、関数の値を忘れることonsubmitです。

完全な例、できればフィドルがなければ、何が問題なのかを正確に知ることは容易ではありません。

于 2012-11-03T03:03:34.550 に答える