2012-11-03 74 views
0

您好,我想知道是否有任何方式來阻止我的表單清理後,我提交和驗證錯誤出現?js窗體清除後驗證

只是爲了澄清我有多種形式,當用戶提交我使用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" /> 
+0

你有沒有考慮過使用驗證插件? – Barmar

回答

0

ID值不應以數字開頭。

Here是捕獲並影響表單提交結果的簡短示例。

最常見的錯誤之一是忘記returnonsubmit函數的值。

沒有一個完整的例子,最好是一個小提琴,要準確地知道什麼是錯的並不容易。