2010-06-11 5 views
1

다음 상황에 문제가 있습니다.ascx에서 jquery 함수가 작동하지 않습니다.

검색 조건에 대한 제출 버튼이 포함 된 ascx가 있는데 사이트 전체에서 사용했던 js 파일에서 유효성 검사 기능을 호출하려고합니다 (이것은 처음으로 ascx).

는 지금은 그냥이 시도했습니다 : 이미 그것을 수행하는 방화범의 게시물을보고하고 같은

<script type="text/javascript" src="js/jquery-1.3.2.js"></script> 
<script type="text/javascript" src="js/jsAdmin_Generic_SystemValidation.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $(".submitBtn").click(function (e) { 
      alert("test"); 
      alert($.Validate()); 
      alert("test 2"); 
     }); 
    }); 
</script> 

파일이 올바르게 참조되고있다.

함수입니다 : 처음 엔 얻고 있었다 지금

jQuery.extend({ 
Validate: function() { 
    var requiredElements = $('.required').length; // Get the number of elements with class required 

    $('.required').each(function() { 
     // If value of textbox is empty and have not 
     // yet been validated then validate all required 
     // elements. i.e. 
     if (($(this).val() == "") || ($(this).hasClass("validationError")) || ($(this).hasClass("validationAlert")) || ($(this).hasClass("validationOk") == false)) { 
      validate($(this)); 
     } 
    }); 

    if ($('.validationOk').length == requiredElements) { 
     return true; 
    } else { 
     return false; 
    } 
}, 
// Another extended function, this function 
// is used for pages with the edit-in-place 
// feature implemented. 
validateElement: function (obj) { 
    var elementId = obj.attr("id"); // id of the button clicked. 
    var flag = 0; 

    if (elementId.toLowerCase() == "paymentmethodid") { 
     // Case elementId = paymentMethodId then check all the 
     // elements with css class starting with openStorage 
     var requiredElements = $(document).find("input[class*='openStorage']").length; // Get the number of elements with css class starting with openStorage 

     // Loop through all the elements with css class containing 
     // openStorage abd validate each element. 
     $(document).find("input[class*='openStorage']").each(function() { 
      if (($(this).val() == "") || ($(this).hasClass("validationError")) || ($(this).hasClass("validationAlert"))) { 
       validate($(this)); 
      } 

      if ($(this).hasClass("validationOk")) { 
       flag++; 
      } else if (($(this).hasClass("validationError")) || ($(this).hasClass("validationAlert"))) { 
       flag--; 
      } 
     }); 

     // If all elements are valid return true else return false 
     if (flag == requiredElements) { 
      return true; 
     } else { 
      return false; 
     } 
    } else if (elementId.toLowerCase() == "registeredfortax") { 
     if (($('.TaxRegistrationNumber').val() == "") || ($('.TaxRegistrationNumber').hasClass("validationError")) || ($('.TaxRegistrationNumber').hasClass("validationAlert"))) { 
      validate($('.TaxRegistrationNumber')); 
     } 

     if ($('.TaxRegistrationNumber').hasClass("validationOk")) { 
      return true; 
     } else { 
      return false; 
     } 
    } else { 
     var elementClass = "." + elementId; 

     if (($(elementClass).val() == "") || ($(elementClass).hasClass("validationError")) || ($(elementClass).hasClass("validationAlert")) || ($(elementClass).hasClass("validationOk") == false)) { 
      validate($(elementClass)); 
     } 

     if ($(elementClass).hasClass("validationOk") && ($(elementClass).hasClass("required"))) { 
      return true; 
     } else if ($(elementClass).hasClass("required") == false) { 
      return true; 
     }else { 
      return false; 
     } 
    } 
} 
}); 

불을 지르고에서 "검증()는 함수가 아닙니다." 그 경고 테스트를 한 이후로 나는 첫 번째 경고를 받았고 아무런 오류도 없었습니다.

누구나 밝힐 수 있습니까?

감사합니다.

+1

Validate() 함수의 전체 코드와 HTML을 게시 할 수 있습니까? 또한, $ (". submitBtn")을 호출 할 때. 내 생각에 .submitBtn 클래스가있는 앱 전체에 몇 개의 버튼이 있습니다 (.ascx의 제출 버튼 중 하나임). –

+0

전체 유효성 검사의 코드를 추가했습니다. 이 유효성 검사를 사용하는 버튼이 많습니다. 게시 한 스크립트는 ascx이며, 다른 버튼은 중앙 자바 스크립트를 사용하고 있습니다. 먼저이 버튼을 사용하려고했습니다 : 그러나 일반 HTML 단추는 여전히 동일한 문제를 내고 있습니다. submitBtn button "/> –

+0

나는이 줄을 보았습니다 : validate ($ (this))는 여러 번 나타나지만, 관련된 함수는 없습니다. 코드가 누락 되었습니까? IE에서 중단 점을 설정하고 확장 메소드로 실행을 따라 할 수 있습니까? –

답변

0

확장 방법을 올바르게 사용하고 있습니까? ... http://api.jquery.com/jQuery.extend/

+0

나는 믿습니다. –

+0

아 맞습니다. 코드 블록 밖에 일부 코드가 있습니다. 나는 그것이 포함되도록 그것을 편집했다. –