2009-05-04 4 views
1

jquery로 인해 'Object expected'오류가 발생하며 양식을 '제출'하거나 데이터를 데이터베이스에 입력하지 않습니다.object expected - jquery

jquery없이 데이터를 데이터베이스에 입력 할 수 있습니다. 하지만 지금은 그렇지 않습니다.

저는 주로 asp.net 컨트롤의 유효성 검사에 jquery를 사용했습니다.


로 스테로스 산, 유효성 검사는 완벽하게 작동하며 id 속성도 동일합니다. 제출은 서버 측 코드를 실행하지 않고 문제가 무엇인지 파악할 수 없습니다.

편집 :

이 jQuery 코드입니다 : 코드와 아무 잘못이

<script type="text/javascript"> 
     $(document).ready(function() { 
      // add custom validation methods 
      $.validator.addMethod('phone', function(value, el, params) { 
       return this.optional(el) || /^[0-9,+,(), ,]{1,}(,[0-9]+){0,}$/.test(value); 
      }, 'Please enter a valid phone number'); 

      $.validator.addMethod('numbers', function(value, el, params) { 
       return this.optional(el) || /^[0-9]+$/.test(value); 
      }, 'Invalid entry. Only Numeric is allowed.'); 


      $.validator.addMethod('domainurl', function(value, el, params) { 
       return this.optional(el) || /^(http\:\/\/(?:www\.)?[a-zA-Z0-9]+(?:(?:\-|_)[a-zA-Z0-9]+)*(?:\.[a-zA-Z0-9]+(?:(?:\-|_)[a-zA-Z0-9]+)*)*\.[a-zA-Z]{2,4}(?:\/)?)$/.test(value); 
      }, 'Please enter a valid domain url'); 


      $.validator.addMethod('selectone', function(value, element) { 
       return this.optional(element) || (value.indexOf("none") == -1); 
      }, 'Please select an option.'); 



      $("#form1").validate({ 
       debug: true, 
       rules: { 
        txt_name: { 
         required: true, 
         minlength: 2 
        }, 
        txt_cmp: { 
         required: true, 
         minlength: 2 
        }, 
        txt_tel1: { 
         phone: true, 
         required: true, 
         minlength: 3 

        }, 
        txt_tel2: { 
         phone: true, 
         required: false, 
         minlength: 3 

        }, 
        txt_mob: { 
         phone: true, 
         required: false, 
         minlength: 9 

        }, 
        txt_email: { 
         required: true, 
         email: true 
        }, 

        txt_domname: { 
         required: true, 
         domainurl: true 
        }, 

        radiobt_domain: "required", 

        ddl_yremail: { 
         required: true, 
         selectone: true 
        }, 
        ddl_email: { 
         required: true, 
         selectone: true 
        }, 

        txt_space: { 
         required: true, 
         numbers: true 

        }, 
        txt_calfr: { 
         required: true 
        }, 
        txt_calto: { 
         required: true 
        } 


      }, 
      messages: { 
       txt_name: { 
        required: "This field is required", 
        minLength: "Please enter a valid name" 
       }, 
       txt_cmp: { 
        required: "This field is required", 
        minLength: "Please enter a valid commpany name" 
       }, 
       txt_tel1: { 
        required: "This field is required", 
        minLength: "Please enter a valid telephone number" 

       }, 
       txt_tel2: { 
        minLength: "Please enter a valid telephone number" 
       }, 
       txt_mob: { 
        minLength: "Please enter a valid mobile number" 

       }, 
       txt_email: { 
        email: "Please enter a valid email address", 
        required: "This field is required" 
       }, 

       txt_domname: { 
        required: "This field is required" 
       }, 
       radiobt_domain: "Select the Hosting Type" 
      } 

     }); 
    }); 
    </script> 

가?

그것은 내가 jquery.validate.js 파일을 라인 (559)에서 예상 개체 확인 말한다 이것은 코드가 표시됩니다 :

addWrapper: function(toToggle) { 
      if (this.settings.wrapper) 
       toToggle = toToggle.add(toToggle.parents(this.settings.wrapper)); 
      return toToggle; 
     } 

JQuery와 코드가 적절한 장소에서 모든 오류를 표시하지만 한 번 수정되었지만 데이터를 제출하지 않습니다.

플러그인 내가 사용하고 있습니다 : 당신이 정의되지 않은 참조하지 않거나 잘못 철자가 개체에 액세스하려고 할 때 예상

http://bassistance.de/jquery-plugins/jquery-plugin-validation/

+2

일부 코드를 참조 할 수 있습니까? 우리가 그것을 볼 수 없다면 무엇이 망가 졌는지 말할 수 없습니다. –

+8

jQuery가 데이터베이스를 업데이트하지 않을 때 나는 싫지만 :/ –

+0

코드 스 니펫 없이는 jQuery가 jQuery가 수정 된 깨진 IE 동작에 의존하는 일부 IE 전용 코드를 가지고 있다고 추측 할 수 있습니다. 예 : $ ('# myFormID') 할려고하면. submit();

...
에서 이전 JS는 document.all.myFormID.submit()이었습니다. 또는 유사합니다. – scunliffe

답변

8

Object가 발생합니다. 예상되는 개체를 확인하십시오. 파이어 폭스 파이어 버그를 사용하여 자바 스크립트를 디버깅하거나 IE에서 디버깅을하여 런타임이 찾을 수없는 객체를 잡아 내십시오 ....

0

내 생각 엔이 오류는 jQuery 유효성 검사 플러그인을 사용하고 있습니다. 에서. 하나의 ASP.NET 컨트롤 만 유효성 검사를 시도하십시오. 이것은 쉽게 오류를 탐지하는 것 :

$("#form1").validate({ 
    rules: { 
     id_of_control_you_know_exists_in_the_rendered_html: { 
      required: true, 
      minlength: 2 
     } 
    } 
}); 

또 다른 가능성은 당신이 사용자 컨트롤에서 ASP.NET 컨트롤을 사용하고 있는지 수 있습니다. 이 경우 렌더링 된 HTML 입력 컨트롤의 id 속성은 .aspx 페이지에서 설정 한 것과 다릅니다. 여기

0

동일한 문제가 있지만 준비 서버에서 발생했습니다. 파일을 비교하면 파일이 동일하고 동일한 사이트에 동일한 파일을 호스팅 할 때 아무런 문제가 없었으므로 파일을 저장하는 특정 사이트 여야했습니다. 문제 해결 후 범인은 우리가 IIS에서 웹 사이트의 속성에 Footer.html 파일 설정을 지정하여 서버가 렌더링시 스크립트 내부에이를 삽입하고 있다는 것입니다. 그러므로 모든 순응성있는 코드를 깨뜨리는 것. IIS 설정에서 footer 속성을 해제했습니다 - 빙고!

0

나는 또한이 문제에 직면 해있다. 하지만 제 경우에는 jquery 버전 prob가 있습니다. 내가 최신 버전을 넣어 IE에서 greate 작업.

2

JQuery 파일을 올바르게 참조하여이 문제를 해결했습니다. 나는 하위 디렉토리에 있었고 올바른 경로가 없었습니다.

관련 문제