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 值不应以数字开头。

是一个捕获和影响表单提交结果的简短示例。

最常见的错误之一是忘记函数return的值onsubmit

没有一个完整的例子,最好是一个小提琴,很难准确地知道哪里出了问题。

于 2012-11-03T03:03:34.550 回答