2010-11-23 444 views
-1

香港專業教育學院做了一個表單驗證的jQuery用下面的代碼

$('#save').click(function(){ 

    $.ajax({ 
     url: "../scripts/availability.php", 
     type: "POST", 
     cache: false, 
     data:{ 
      stamp:   $("#stamp").val(), 
      jprefix:   $("#jprefix").val(), 
      tprefix:   $("#tprefix").val(), 
      starting_date: $("#starting_date").val(), 
      ending_date:  $("#ending_date").val(), 
      starting:  $("#starting").val(), 
      ending:   $("#ending").val(), 
      colab_id:  $("#colab_id").val(), 
      id:    $("#id").val(), 
      session_id:  $("#session_id").val() 
     }, 
     dataType: "html", 
     success: function(msg){ 
      if($(msg).html()==1){ 
       if($("#starting").val() < $("#ending").val() && valDate()){ 
        $("#serviceForm").submit(); 
       }else{ 
        alert ("Conflicto na data ou hora do serviço"); 
       } 
      }else{ 
       alert("Sobreposição de Colaborador"); 
      } 
     } 
    }); 
}); 
function valDate(){ 
    if($("#starting_date").length){ 
     if($("#starting_date").val() <= $("#ending_date").val()){ 
      return true; 
     }else{ 
      return false; 
     } 
    }else{ 
     return true; 
    } 
} 

有時形式得到不正確的驗證

回答

0

假設上#您的單擊事件處理程序submited保存是表單提交按鈕,它看起來像表單將正常提交(不通過Ajax),因爲這是默認行爲。您需要在點擊處理程序上明確的「返回false」

+1

或`$('#save')。click(function(event){`和`event.preventDefault()`。 – 2010-11-23 19:32:13

0

我已經發現了驗證錯誤...... 一切正常工作,值的conparisson的例外... in他們與int值的形式....但溫度的價值是由JS得到它有些作爲字符串...導致奇怪comparissons ... 至於阿賈克斯它自我只是驗證的另一部分防止有重疊計劃