When Uploadify is used and jQuery. Validition is used to verify the control, the JS missing object error occurs on IE11 ., Uploadifyie11

Source: Internet
Author: User

When Uploadify is used and jQuery. Validition is used to verify the control, the JS missing object error occurs on IE11 ., Uploadifyie11

Scenario:

Use jQuery.1.8.2

Use the Uploadify 3.2 upload Control

Verify with jQuery. Validition 1.9

  

  

When you use IE 11, when you click the upload button, the JS object is missing. For example:

Locate the error in jQuery.

  

 

After troubleshooting, it is found that the jQuery Validition verification control is referenced.

In the initialization of the jQuery Validition control, the following code is provided:

$currentSection                .validateDelegate(":text, [type='password'], [type='file'], select, textarea, " +                    "[type='number'], [type='search'] ,[type='tel'], [type='url'], " +                    "[type='email'], [type='datetime'], [type='date'], [type='month'], " +                    "[type='week'], [type='time'], [type='datetime-local'], " +                    "[type='range'], [type='color'] ",                    "focusin focusout keyup", delegate)                .validateDelegate("[type='radio'], [type='checkbox'], select, option", "click", delegate);


You only need to comment out the code, and the error will disappear.

 

Check the validateDelegate method:

$. Fn. validateDelegate = function (delegate, type, handler) {// verify the delegate return this. on (type, function (event) {var target = condition (event.tar get); if (target. is (delegate) {return handler. apply (target, arguments );}});};

  

It only binds events to elements and has no special code.

 

After you try to remove the jQuery. validitioin plug-in from Html, write the following code on the current page:

 

$("form").on("focusin focusout keyup",function(){    // TODO: });

  

This code will also cause the above mentioned problems.

 

Because the error is thrown on jQuery, go to jQuery:

acceptData: function( elem ) {var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ];// nodes accept data unless otherwise specified; rejection can be conditionalreturn !noData || noData !== true && elem.getAttribute("classid") === noData;}

  

Focus on debugging to elem. the getAttribute method is useless to other elements. However, when obtaining the object element, on IE11, The getAttribute method does not exist as null, so the preceding code is reported.

Add a judgment to the Code:

acceptData: function( elem ) {var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ];// nodes accept data unless otherwise specified; rejection can be conditionalreturn !noData || noData !== true && elem.getAttribute != null && elem.getAttribute("classid") === noData;}

  

This problem persists when I try to use jQuery 1.9 and 1.12. So I only changed the code of 1.8.2, and this problem occurs when the other element encounters the object.

Download the modified jquery 1.8.2:

Jquery-1.8.2-FIX_Object.getAttribute_is_Null Download

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.