2011-01-11 118 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"));