2011-08-03 108 views
0

驗證我的工作是在一個普通的PHP表單上進行的,但是在這個Ajax表單上,它只能在一些時候工作。通常在提交按鈕被點擊一次後,驗證將不會再次運行。我覺得我需要將驗證與Aj​​ax綁定,但我不確定如何繼續。jQuery使用Ajax提交表單

<script type="text/javascript"> 
    var J = jQuery.noConflict(); 
    J(document).ready(function(){ 
    // Validate signup form on keyup and submit 
    J("#professorform").validate({ 
     rules: { 
      "professor": 
      { 
       required: true, 
       format: true}, 
      }, 
    }); 
}); 
</script> 

<script type="text/javascript"> 
    function addProf(str) 
    { 
     if (str=="") 
     { 
      document.getElementById("prof").innerHTML=""; 
      return; 
     } 
     if (window.XMLHttpRequest) 
     { // Code for Internet Explorer 7 and later, Firefox, Chrome, Opera, Safari 
      xmlhttp=new XMLHttpRequest(); 
     } 
     else 
     { // Code for Internet Explorer 6 and Internet Explorer 5. 
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     xmlhttp.open("POST","test.php",true); 

     var params = "professor=" + encodeURI(document.getElementById("professor").value); 

     xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
     xmlhttp.setRequestHeader("Content-length", params.length); 
     xmlhttp.onreadystatechange=function() 
     { 
      if (xmlhttp.readyState==4 && xmlhttp.status==200) 
      { 
       document.getElementById("prof").innerHTML=xmlhttp.responseText; 
      } 
     } 
     xmlhttp.send(params); 
    } 
</script> 
+0

當你可以使用ajax()jQuery函數時,這是很多代碼。 – Calum

+0

爲什麼不使用jQuery的ajax功能?他們更舒服 – Fender

回答

0

我不知道這會解決你的問題,但你可以通過使用jQuery AJAX命令替換所有的AJAX設置和回調。在這裏檢查:http://api.jquery.com/jQuery.ajax/ 它會更清潔,寫起來更容易。

+0

謝謝!我已經切換到ajax()jquery函數,它絕對是更清潔!但我仍然堅持如何讓驗證綁定到它... – ToryT

+0

嘗試在AJAX函數的'beforeSend'回調中調用驗證函數。 – lamelas