Search code examples
jqueryjquery-validatecdn

JQuery.Validate CDN fallback


A bit of a follow on from this question: Best way to use Google's hosted jQuery, but fall back to my hosted library on Google fail

So I can detect if the JQuery CDN is down and allow for this:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
        <script type="text/javascript">
            if (typeof jQuery == 'undefined') {
                document.write(unescape("%3Cscript src='/Script/jquery-1.7.2.min.js' type='text/javascript'%3E%3C/script%3E"));
            }
</script>

How do I do the same for jquery.validate, when loaded as:

<script type="text/javascript" language="javascript" src="http://ajax.microsoft.com/ajax/jQuery.Validate/1.6/jQuery.Validate.min.js"></script>

Solution

  • Use this instead:

    if(typeof $().validate == 'undefined')
    {
        /// same code as before except pointing at your local jQuery.validate path
    }
    

    DEMO - Check if validate exists

    Returns true in the console if it exists and false if not.
    Remove the script reference in the DEMO to get false as output.

    Your complete code may look similar to this:

    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
    <script type="text/javascript" src="http://ajax.microsoft.com/ajax/jQuery.Validate/1.6/jQuery.Validate.min.js"></script>
    
    <script type="text/javascript">
        if (typeof jQuery == 'undefined') {
            document.write(unescape("%3Cscript src='/Script/jquery-1.7.2.min.js' type='text/javascript'%3E%3C/script%3E"));
        };
    
        if (typeof $().validate == 'undefined') {
            document.write(unescape("%3Cscript src='/Script/jquery.Validate-1.6.min.js' type='text/javascript'%3E%3C/script%3E"));
        }
    </script>