2011-01-27 5 views
0

내 특정 질문/문제는 Cedric Dugas의 jQuery 유효성 검사 플러그인 (http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/#comments)의 v1.7 구현과 관련이 있지만 문제가 다른 상황으로 쉽게 일반화 될 수 있다고 생각합니다. getScript 콜백 내에서 jQuery 함수를 초기화 할 수없는 이유는 무엇입니까?

일반적으로 나는과 같이 다음 스크립트를로드

<script src="inc/formValidator/js/jquery.validationEngine.js" type="text/javascript"></script> 

그런 다음 플러그인을 초기화하기 위해, 나는 다음을 수행하십시오

<script> 
$(document).ready(function() {  
    $("#myFormID").validationEngine(); 
}); 
</script> 

나는의 값을 id 속성과 양식을 가지고 "myFormID"및 스크립트가 양식 필드의 유효성을 검사합니다. 이 작동합니다.

그러나 모든 페이지에 2 비트의 코드가 포함되어 있지만 페이지의 ID가 myFormID 인 양식이 없으면 null 오류가 발생합니다. 이 문제를 해결하고 적절한 양식이있을 때만 플러그인을로드하려고하면 다음을 시도합니다.

<script> 
    if($('#myFormID').length) 
    { 
     $.getScript('inc/formValidator/js/jquery.validationEngine.js', function() { 
      alert('Load was performed.'); 
     }); 
    }; 
</script> 

잘 작동합니다. 그러나 이제 validationEngine을 초기화하고 폼에 바인딩하는 방법을 알 수 없습니다. 왜이 기능이 작동하지 않습니까?

$.getScript('inc/formValidator/js/jquery.validationEngine.js', function() 
    { 
     $("#myFormID").load(function() 
     { 
      $(this).validationEngine(); 
     }); 
    }); 

운 :

$.getScript('inc/formValidator/js/jquery.validationEngine.js', function() 
    { 
     $("#myFormID").validationEngine(); 
    }); 

나는이 시도했다. 이 오류가 발생합니다 : $ ("# myFormID") null입니다.

아이디어가 있으십니까? 나는 거의 그대로 대머리 다. 이것은 도움이되지 않습니다!

+0

다른 개발자가 추가 한 스크립트의 프로토 타입 충돌이었습니다. – technoTarek

답변

0

는 다른 개발자에 의해 추가 된 스크립트에서 프로토 타입의 충돌이었다 밝혀졌습니다. 본질적으로 잘못된 것은 없었습니다

<script> 
    if($('#myFormID').length) 
    { 
     $.getScript('inc/formValidator/js/jquery.validationEngine.js', function() { 
      $("#myFormID").validationEngine(); 
     }); 
    }; 
</script> 
0

모든 페이지에 js를 포함 할 수 있지만 양식이있는 경우에만 validationEngine을 호출하십시오. 그와 마찬가지로 :

<script src="inc/formValidator/js/jquery.validationEngine.js" type="text/javascript"></script> 

 
$(document).ready(function() { 
if($('#myFormID').length) 
    { 
    $("#myFormID").validationEngine(); 
    } 
}); 

+0

감사합니다.하지만 모든 페이지에 js를 포함 시키면 오류가 발생합니다. 이는 분명히 원래 유효성 검사 스크립트의 문제이지만 내 통제 범위를 벗어납니다. 방금 위의 코드가 작동하지 않는 이유는 다른 개발자가 추가 한 스크립트의 프로토 타입 충돌 때문입니다. 그럼에도 불구하고 다시 한번 감사드립니다. – technoTarek

관련 문제