2011-10-04 3 views
0

RSV 검사기로 양식을 검사하고 있습니다. 다음과 같은 작업을 원합니다. 사용자가 처음으로 페이지를 연했다고합시다. 모든 텍스트 입력 상자를 채운 후 사용자가 #submit_btn을 처음 클릭하면 양식 제출 기능이 RSV (유효성 검사기)를 시작하고 유효성 검사기는 오류가 있는지 확인합니다. 모든 권리, 아약스를 통해 게시물 데이터, 그렇지 않으면 RSV는 alert()의 도움으로 오류 메시지 배열을 표시합니다. 이 절차는 처음으로 만유효성 검사에서 true를 반환하는 경우에만 ajax를 통한 POST

BTW : RSV - validator. 유효성 검사 프로세스 중에 오류가 발생하지 않으면 myoncomplete() 함수는 1을 반환합니다. 문제가 발생하면 경고가 표시됩니다. 에서 얻었습니다 here

나는 그것을 얻을 수 없습니다. 논리/코드 실수를 수정하도록 도와주세요. 사전에 들으

내 JS

var int=null; 
var counter=0; 
function myOnComplete() { 

    return 1; 

} 

$(document).ready(function() { 

$("#add_form").RSV({ 

     onCompleteHandler: myOnComplete, 

     rules: [ 

      "required,name,Page name required", 

      "required,title,Page title required.", 


      ] 

    }); 

$("#add_form").submit(function (e) { 
     e.preventDefault(); 
     dataString = $("#add_form").serialize(); 
     $.ajax({ 
      type: "POST", 
      url: "processor/dbadd.php", 
      data: dataString, 
      dataType: "json", 
      success: function (result, status, xResponse) { 
       //do something if ajax call is success 

       int = setInterval(call, 3000); 
       var message = result.msg; 
       var err = result.err; 
       if (message != null) { 
        $.notifyBar({ 
         cls: "success", 
         html: message 
        }); 
       } 
       if (err != null) { 
        $.notifyBar({ 
         cls: "error", 
         html: err 
        }); 
       } 
      }, 
      error: function (e) { 
       //ajax call failed 
       alert(e); 
      } 
     }); 
}); 
$("#submit_btn").click(function() { 

      if(counter===0){ 
      if(myOnComplete()===1) $('#add_form').submit(); 
      else return false; 
      } 
      else $('#add_form').submit(); 
      counter++; 
      }); 

      $('#autosave').click(function(){ 
       if($(this).is(':checked')){ 
        int = setInterval(call, 3000); 
        $('#submit_btn').attr({'value':'Save&Exit'}); 
       } 
      else{ 
        $('#submit_btn').attr({'value':'Save'}); 
        clearInterval(int); 
       } 
      }); 

}); 

function call() { 
    $('#add_form').submit(); 
} 
+0

문제에 대한 이해를 돕기 위해.기본적으로 사용자가 동일한 데이터로 아약스를 통해 데이터를 두 번 제출하는 것을 원하지 않습니까? – Sam

+0

아니, 아약스, 초, 모든 게시물을 게시 할 때 처음으로 유효성을 검사하고 싶습니다. 따라서 유효성 검사는 처음으로 – heron

답변

1

통해 찾고 여기서 볼 수 있듯이 당신이 RSV를 첨부 어떤처럼 보이는 RSV 코드 .RSV.validate()

를 사용하여 데이터의 유효성을 검사의 제출 반등을 가지고합니다 :

$(this).bind('submit', {currForm: this, options: options}, $(this).RSV.validate); 
}); 

의미합니다 당신은 (.submit를 사용하는 경우) 당신이 전화하고 있습니다. RSV.validate도 있습니다.

일단 정보를 검증하면 제출을 표준 제출 기능에 바인딩하십시오.

편집 : 당신이 당신의 add_form 요소의 제출 이벤트에

$("#add_form").RSV({...}); 

.RSV.validate 결합되는 자바 스크립트 코드 RSV 감염()를 사용하는 경우

설명하는 데 도움합니다. add_form 양식을 제출할 때의 의미 .RSV.validate()가 제출 전에 호출 중입니다.

는()

이 스크립트는 add_form 요소의 모든 이벤트에 대한 모든 처리기를 기록합니다 호출하고 .RSV없이 아래의 스크립트 코드를 실행 해보십시오. $ element.RSV ({...})를 호출하면 두 번째 이벤트 핸들러가 add_form 요소의 submit 이벤트에 연결된다는 것을 알 수 있습니다. 가장 좋은 방법은 .unbind()에이 이벤트 핸들러에 액세스하는 것이 확실하지 않습니다. 행운을 빌어 요.

jQuery.each($('#add_form').data('events'), function(i, event){ 
    jQuery.each(event, function(i, handler){ 
     console.log(handler); 
    }); 
}); 
+0

코드를 수정하십시오. 당신의 해결책이 나에게 명확하지 않다. – heron

1

OK, 나의 이해로 이제 당신은 단지 데이터의 첫 번째 세트를 유효성을 검사 할하고 올바르게 사용자를 신뢰 유효성을 검사하는 경우, 나는 쉬운이 jsFiddle 작업을 얻었다 예를 들어, 나는 기본적으로 내가 무엇을 내가 제출 버튼 클릭을 잡을 아닌 형태 어쩌면 너무 그 방법을 수행 할 수 있습니다, 기능을 제출하는 것입니다 당신이

http://jsfiddle.net/WqnYa/9/

를 사용할 수있다 같아요. 나는 "needsvalidation"클래스를 할당하고, 첫 번째 유효성 검사가 통과 될 때, 나는 단순히 그 클래스를 제거한다. 클래스가 존재하지 않는 경우에, 검증은 그 질문이 방법이 더 명확해야 당신이 다음을 찾고 아니라면 :(인해 $(this).hasClass('needval')

초기화이 그래도 도움이되기를 바랍니다되지 않습니다!

+0

Thx가됩니다. 하지만 그건 내 질문에 대한 대답이 아니야. 내 코드를 읽었 니? 내 상황에 맞는 해결책이 필요해. 나는 당신의 해결책과 같은 기본적인 것들을 할 수 없다고 생각합니까? – heron

+0

죄송합니다. 복잡한 문제에 대한 간단한 해결책을 시도했습니다. 내 실수. 당신은 문제를 충분히 설명하지 않았을뿐입니다. 간격을 사용하여 문제가 발생하면 정확하게 작동하지 않는지를 설명하는 경우 수동으로 또는 간격 내에서 차이가 없음을 알 수 있습니다. – Sam

+0

수신자 : 여기에서 유효성 검사기를 사용합니다 http://www.benjaminkeen.com/software/rsv/ jquery /. 내가 원하는 것은 간단합니다. 처음으로 페이지에 들어갔다고 가정 해 봅시다. 모든 텍스트 입력 내용을 채운 후 버튼을 클릭하여 제출합니다. 이제 제출 버튼이 유효성 검사 프로세스를 시작해야합니다. 모든 것이 올바르게되면 RSV는 myoncomplete() 함수를 통해 true (나는 1로 바꿨다)를 리턴한다. 양식 데이터가 유효성 검사를 성공적으로 통과 한 경우에만 AJAX를 통해 데이터를 게시하고 싶습니다. 전달되지 않으면 RSV는 오류 메시지 배열에 경고해야합니다. 이제 문제는 내 코드가 유효성 검사 결과를 확인하지 않고 데이터를 게시하는 것입니다. – heron

관련 문제