2011-01-31 4 views
3

jQuery validate plugin을 즉석에서 생성하는 양식에 바인딩해야합니다. 지금까지 내가 아는 한 .live()이 jQuery에서 이것을 수행하는 유일한 방법이다. 적어도 노력하고있는 것처럼 작동하지 않는 것 같습니다. 나는 이것이 할 수 있다고 생각하고 그것은 단지 eebkac이다!JQuery : .valid 플러그인을 .live로 바인딩

이 잘 작동 :

$("form#form_CreateUser").validate({ 
    submitHandler: function(form) { 
    // do other stuff for a valid form 
    UserSubmit(); 
    } 
}); 

이 구문 오류가 발생하는 경우를 어떻게 validate 작품을 오해했기 때문에

$("form#form_CreateUser").live('validate', function() { 
    submitHandler: function(form) { 
    // do other stuff for a valid form 
    UserSubmit(); 
    } 
}); 
+0

스택 오버플로에 URL 단축키를 사용하지 마십시오. –

답변

14

이 작동하지 않습니다. click과 같은 이벤트 처리기 기능처럼처럼 보입니다. 그러나 실제로는 그렇지 않습니다.

clickbind('click', fn)의 지름길입니다. validatebind을 사용하여 작동하지 않습니다. live은 실질적으로 아직 존재하지 않는 요소에 대해 bind 호출을 작동시키는 방법이므로 validate과 작동하지 않습니다.

가장 쉬운 방법은 validate을 호출하고 새 콘텐츠를 삽입 할 때마다 해당 함수를 호출하는 것입니다. 예를 들어, AJAX를 사용하여 양식을 삽입하는 경우 ajaxComplete 함수를 사용할 수 있습니다.

function setupValidate() { 
    $("form#form_CreateUser").validate({ 
     submitHandler: function(form) { 
      // do other stuff for a valid form 
      UserSubmit(); 
     } 
    }); 
} 

$(document).ajaxComplete(setupValidate); // after every AJAX request 
setupValidate(); // right now 
+1

고마워. 나에게도 도움이되었다. –

관련 문제