2014-01-17 3 views
3

입력 필드가 거의없는 양식과 StoreValidate 두 가지 작업을 사용할 수있는 양식이 있습니다. 클라이언트 측 유효성 검사를 위해 jquery-validation 플러그인을 사용합니다.작업에 따라 양식 유효성 검사

Store 작업의 경우 Validate 조작 5 필드의 경우 2 개의 필드 만 필수입니다. 처음에는 Validate 작업 유효성 검사 규칙이 올바르게 작동하려고 할 때. Store 작업을 시도한 후에 작동 시키려면 Validate 작업에서 이전의 모든 오류를 지우고 양식을 한 번 더 확인하고 Store 작업 규칙이 필요합니다. resetForm()으로 양식 오류를 해결하려고했지만 오류 메시지 만 지우지 만 양식이 여전히 유효하지 않으며 오류를 해결할 때까지는 아무 작업도 수행 할 수 없기 때문에 문제가 해결되지 않습니다. Pls는이 문제를 해결하는 방법을 귀하의 아이디어를 공유합니다.

P. 코드 스 니펫은 아래에 있습니다.

validator.resetForm(); 
$("#form").get(0).reset(); 
:
var validationOperMandatoryFields = new Array("field1", "field2", "field3", "field4", "field5"); 
var storeOperMandatoryFields = new Array("field1", "field2"); 

$(document).ready(function() { 
    var validator = $("#form").validate({ 
     rules: { 
      field1: { 
       required: { 
        depends: function() { 
         return isMandatoryForOperation('field1') 
        } 
       } 
      }, 
      field2: { 
       required: { 
        depends: function() { 
         return isMandatoryForOperation('field2') 
        } 
       } 
      }, 
      field3: { 
       required: { 
        depends: function() { 
         return isMandatoryForOperation('field3') 
        } 
       } 
      }, 

      field4: { 
       required: { 
        depends: function() { 
         return isMandatoryForOperation('field4') 
        } 
       } 
      }, 

      field5: { 
       required: { 
        depends: function() { 
         return isMandatoryForOperation('field5') 
        } 
       } 
      } 
     } 
    }); 
}); 

function isMandatoryForOperation(fieldname) { 
    var operationName = $("#tempOper").val(); 
    switch (operationName) { 
     case "Store": 
      return $.inArray(fieldname, storeOperMandatoryFields) > -1; 
      break; 
     case "Validate": 
      return $.inArray(fieldname, validationOperMandatoryFields) > -1; 
      break; 
    } 
} 

답변

1

는이 작업을 수행 할 필요가 완전히 형태를 재설정하려면