2014-10-24 3 views
0

AJAX 호출이 실행되기 전에 데이터 (http://formvalidator.net/)의 유효성을 검사하려고합니다. 그러나 버튼 2 개 (추가 1 개, 편집 1 개)가 있기 때문에 올바른 구문을 찾을 수 없습니다. Sofar 다음 코드가 있습니다.AJAX 호출이 시작되기 전에 데이터 유효성 검사

function validate_resource_form() { 
    $.validate({ 
     form: '#resource_form', 
     modules: 'date, security, location, file', 
     onModulesLoaded: function() { 
      $('input[name="country"]').suggestCountry(); 
     }, 
     onError: function() { 
      alert('You have not answered all required fields'); 
     }, 
     onValidate : function() { 
      if ($("#add_resource").click()){ 
       create_resource(); 
      } else if ($("#edit_resource").click()){ 
       update_resource(); 
      } 
     } 
    }); 
} 

이 코드는 첫 번째 if 문만 실행합니다. 이 경우 add_resource 또는 edit_resource 버튼을 클릭 할 때만 새 리소스가 만들어집니다. 데이터를 확인한 다음 클릭 한 버튼을 기반으로 올바른 기능을 수행하려면 어떻게해야합니까? 이 코드

답변

2
function validate_resource_form() { 
    $.validate({ 
     form: '#resource_form', 
     modules: 'date, security, location, file', 
     onModulesLoaded: function() { 
      $('input[name="country"]').suggestCountry(); 
     }, 
     onError: function() { 
      alert('You have not answered all required fields'); 
     }, 
     onValidate : function() {    
      $("input").click(function(e){ 
      var idClicked = e.target.id; 
      if (idClicked == "#add_resource"){ 
       create_resource(); 
      } else if (idClicked == "#edit_resource"){ 
       update_resource(); 
      } 
     }); 

     } 
    }); 
} 
0

당신은 다음 U는 다음에 onValidate 변경

를 업데이트 만드는 의미

<button onclick='$("#clickedAction").val("c")' id="add_resource">create</button> 
<button onclick='$("#clickedAction").val("u")' id='edit_resource'>update</button> 

C에 제출 버튼을 업데이트 숨겨진 입력을

<input type='hidden' id='clickedAction'> 

을 추가 할 수 있습니다 :

onValidate : function() { 
     if ($("#clickedAction").val()=='c'){ 
      create_resource(); 
     } else if ($("#clickedAction").val()=='u'){ 
      update_resource(); 
     } 
    } 
관련 문제