2011-01-11 85 views
0

我有一個簡單的形式與6個文本框。 我使用Ajax來保存信息。 當我點擊編輯按鈕時,jQuery驗證器發現了錯誤但允許提交。 其實它只適用於最後的輸入!與jQuery驗證問題

我用類=「號fillone」來檢查他們進入只是數量,也進入6至少一個...

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

    $("#edit_midterm_form").validate({ 
     rules:{ 
      queiz: {number:true, max:6, 
      seminar:{number:true, max:6, 
      tamrin:{number:true, max:6, 
      midterm:{number:true, max:6}, 
      tahghigh:{number:true, max:6}, 
      project:{number:true, max:6} 
     }, 
     require_from_group: [1,".fillone"], 
     submitHandler: function() 
     { 
      $("#loading_edit").ajaxStart(function(){$(this).show();}); 
      $("#loading_edit").ajaxStop(function(){$(this).hide();}); 

      $.ajax({ 
       type:"POST", 
       url:"course/term/ajax_mlist.php", 
       data:($("#edit_midterm_form").serialize()), 
       success:function(data){ 
       if((data.result)=='true') 
        $("#result_edit").html(data.message); 
      }, 
      dataType:"json"}); 
      return false; 
     } 


    }); 
}); 

,這是我的表單:

<form name="edit_mid" action="" id="edit_midterm_form" method="post"> 
     <input type="hidden" name="type" value="edit"> 
     <input type="hidden" name="operation" value="yes"> 
     <input type="hidden" name="ic" value="'.$id.'"> 
     <table class="list" width="100%" border="0" align="center" cellspacing="1" cellpadding="5" dir="rtl"> 
     <tr> 
      <th colspan="2">Edit Form</th> 
     </tr> 
     <tr> 
      <td width="100">Quize</td> 
      <td><span class="red_error"><input type="text" name="queiz" id="queiz" max="6" class="number fillone" value="'.$object->queiz_1.'"></span></td> 
     </tr> 
     <tr> 
      <td>Lecture</td> 
      <td><span class="red_error"><input type="text" name="seminar" id="seminar" max="6" class="number fillone" value="'.$object->seminar_3.'"></span></td> 
     </tr> 
     <tr> 
      <td>home Work</td> 
      <td><span class="red_error"><input type="text" name="tamrin" id="tamrin" max="6" class="number fillone" value="'.$object->tamrin_5.'"></span></td> 
     </tr> 
     <tr> 
      <td>Midterm</td> 
      <td><span class="red_error"><input type="text" name="midterm" id="midterm" max="6" class="number fillone" value="'.$object->midterm_2.'"></span></td> 
     </tr> 
     <tr> 
      <td>Search</td> 
      <td><span class="red_error"><input type="text" name="tahghigh" id="tahghigh" max="6" class="number fillone" value="'.$object->tahghigh_4.'"></span></td> 
     </tr> 
     <tr> 
      <td>project</td> 
      <td><span class="red_error"><input type="text" name="project" id="project" max="6" class="number fillone" value="'.$object->project_6.'"></span></td> 
     </tr> 
     <tr> 
      <td></td> 
      <td><input type="submit" id="edit_midterm" value="Edit" class="buttom_edit"> 
      <img src="../template/icon/ajax_loader_1.gif" id="loading_edit"> 
      <span id="result_edit"></span> 
      </td> 
     </tr> 
     </table></form> 
+0

這是你的代碼,正是因爲它是在你的計劃? – 2011-01-11 17:30:36

回答

1

不知道什麼樣的錯誤你得到,但我可以一眼看出有一些閉幕括號柯利丟失:

rules:{ 
         queiz: {number:true, max:6}, 
         seminar:{number:true, max:6}, 
         tamrin:{number:true, max:6}, 
         midterm:{number:true, max:6}, 
         tahghigh:{number:true, max:6}, 
         project:{number:true, max:6} 
         }, 
+0

我把jsfiddle放在一起,固定大括號使它工作。你可以在這裏看到它。我對代碼的唯一修改是包含驗證插件並修正大括號。你可以看到它在這裏工作:http://jsfiddle.net/qpk5X/ – 2011-01-11 17:37:57

0

行爲這裏是榮,在我的代碼中是正確的。 問題是,當我使用這個代碼控制至少輸入6其中一個不工作。

以我的形式它只適用於最後一個!

這是代碼:

jQuery.validator.addMethod("require_from_group", function(value, element, options) { 
    numberRequired = options[0]; 
    selector = options[1]; 
    var validOrNot = $(selector, element.form).filter(function() { 
     return $(this).val(); 
     }).length >= numberRequired; 

    if(!$(element).data('being_validated')) { 
    var fields = $(selector, element.form); 
    fields.data('being_validated', true).valid(); 
    fields.data('being_validated', false); 
    } 
    return validOrNot; 

}, jQuery.format("please enter {0} Of this"));