Liam
Liam

Reputation: 29674

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>

Upvotes: 11

Views: 5195

Answers (2)

Nope
Nope

Reputation: 22329

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>

Upvotes: 10

Claudio Redi
Claudio Redi

Reputation: 68400

Something like this could do the trick

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

Upvotes: 3

Related Questions