2014-11-30 19 views
5
jQuery(document).ready(function() { 
    //alert("HIQ"); 
    $('.mySelectCalendar').datepicker({ firstDay: 1, dateFormat: "dd.mm.yy" }); 
    $.validator.addMethod(
      'date', 
      function (value, element, params) { 
       if (this.optional(element)) { 
        return true; 
       }; 
       var result = false; 
       try { 
        $.datepicker.parseDate('dd.mm.yy', value); 
        result = true; 
       } catch (err) { 
        result = false; 
       } 
       return result; 
      }, 
      '' 
     ); 
}); 

की 'addMethod' मैं के रूप में त्रुटि मिलती है "Uncaught TypeError: गुण अपरिभाषित की 'addMethod' पढ़ा नहीं जा सकता" इसUncaught TypeError: पढ़ा नहीं जा सकता गुण अपरिभाषित

रूप

_layout @ व्यूबैग। टिटल

<!-- jQuery --> 
<script src="~/App_Themes/ThemeBlue/assets/js/jquery203.js"></script> 
<script src="~/App_Themes/ThemeBlue/assets/js/jquery.min.js"></script> 

<script type="text/javascript"> 
    var jQuery_2_0_3 = $.noConflict(true); 
</script> 
<!-- Picker UI--> 
<script src="~/App_Themes/ThemeBlue/assets/js/jquery-ui.js"></script> 
<script src="//code.jquery.com/jquery-1.10.2.js"></script> 
<script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script> 


<!--Validation --> 
<script src="~/Scripts/jquery-1.7.1.min.js"></script> 
<script src="~/Scripts/jquery.validate.js"></script> 
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script> 
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script> 

<link href="~/App_Themes/ThemeBlue/css/validation.css" rel="stylesheet" /> 
<script type="text/javascript"> 
    var jQuery_1_7_0 = $.noConflict(true); 
</script> 
<!-- Bootstrap --> 
<link href="~/App_Themes/ThemeBlue/dist/css/bootstrap.css" rel="stylesheet" media="screen" /> 
<link href="~/App_Themes/ThemeBlue/assets/css/custom.css" rel="stylesheet" media="screen" /> 


<!-- bin/jquery.slider.min.js --> 


<script type="text/javascript" src="~/App_Themes/ThemeBlue/plugins/jslider/js/jshashtable-2.1_src.js"></script> 
<script type="text/javascript" src="~/App_Themes/ThemeBlue/plugins/jslider/js/jquery.numberformatter-1.2.3.js"></script> 
<script type="text/javascript" src="~/App_Themes/ThemeBlue/plugins/jslider/js/tmpl.js"></script> 
<script type="text/javascript" src="~/App_Themes/ThemeBlue/plugins/jslider/js/jquery.dependClass-0.1.js"></script> 
<script type="text/javascript" src="~/App_Themes/ThemeBlue/plugins/jslider/js/draggable-0.1.js"></script> 
<script type="text/javascript" src="~/App_Themes/ThemeBlue/plugins/jslider/js/jquery.slider.js"></script> 
<!-- Javascript --> 
<script src="~/App_Themes/ThemeBlue/assets/js/initialize-loginpage.js"></script> 
<script src="~/App_Themes/ThemeBlue/assets/js/jquery.easing.js"></script> 
<script src="~/App_Themes/ThemeBlue/assets/js/customTravel.js"></script> 
<!-- Load Animo --> 
<script src="~/App_Themes/ThemeBlue/plugins/animo/animo.js"></script> 
<script src="~/App_Themes/ThemeBlue/dist/js/bootstrap.min.js"></script> 

<!-- Carousel --> 
<link href="~/App_Themes/ThemeBlue/examples/carousel/carousel.css" rel="stylesheet" /> 
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> 
<!--[if lt IE 9]> 
     <script src="assets/js/html5shiv.js"></script> 
     <script src="assets/js/respond.min.js"></script> 
    <![endif]--> 

<!-- Fonts --> 
<link href='http://fonts.googleapis.com/css?family=Lato:400,100,100italic,300,300italic,400italic,700,700italic,900,900italic' rel='stylesheet' type='text/css'> 
<link href='http://fonts.googleapis.com/css?family=Open+Sans:700,400,300,300italic' rel='stylesheet' type='text/css'> 
<!-- Font-Awesome --> 
<link rel="stylesheet" type="text/css" href="~/App_Themes/ThemeBlue/assets/css/font-awesome.css" media="screen" /> 
<!--[if lt IE 7]><link rel="stylesheet" type="text/css" href="~/App_Themes/ThemeBlue/assets/css/font-awesome-ie7.css" media="screen" /><![endif]--> 

<!-- REVOLUTION BANNER CSS SETTINGS --> 
<link rel="stylesheet" type="text/css" href="~/App_Themes/ThemeBlue/css/fullwidth.css" media="screen" /> 
<link rel="stylesheet" type="text/css" href="~/App_Themes/ThemeBlue/rs-plugin/css/settings2.css" media="screen" /> 

<!-- Picker UI--> 
<link rel="stylesheet" href="~/App_Themes/ThemeBlue/assets/css/jquery-ui.css" /> 

<!-- bin/jquery.slider.min.css --> 
<link rel="stylesheet" href="~/App_Themes/ThemeBlue/plugins/jslider/css/jslider.css" type="text/css"> 
<link rel="stylesheet" href="~/App_Themes/ThemeBlue/plugins/jslider/css/jslider.round.css" type="text/css"> 



<!-- Animo css--> 
<link href="~/App_Themes/ThemeBlue/plugins/animo/animate_animo.css" rel="stylesheet" media="screen"> 
<!-- end --> 

मैं एमवीसी में वेब एप्लिकेशन लिखता हूं और इस समस्या को हल नहीं कर सका।

क्या आप मेरी मदद करते हैं?

+0

आप शायद जो $ .validator ... –

+0

प्लगइन का नाम क्या है परिभाषित करता है एक प्लगइन भूल रहे हैं? –

+0

ऐसा लगता है कि आपने 'jquery.validate.js' –

उत्तर

12

आपका त्रुटि:

Uncaught TypeError: Cannot read property 'addMethod' of undefined

यह बस है कि जावास्क्रिप्ट addMethod विधि है, जो jQuery मान्य प्लगइन में बनाया गया है नहीं मिल सकता है का मतलब है। jQuery या jQuery सत्यापन को ठीक से शामिल नहीं किया गया था ... फ़ाइल (ओं) नहीं मिल सकती है या jQuery टूट गया है ...

आपका हेड सेक्शन jQuery के कई संस्करणों और .noConflict() के साथ एक गड़बड़ है जो असंगत रूप से लागू होता है।

ध्यान दें कि आपने jQuery के इस विशेष संस्करण को शामिल करने के ठीक बाद .noConflict() को परिभाषित किया है?

<!--Validation --> 
<script src="~/Scripts/jquery-1.7.1.min.js"></script> 
<script src="~/Scripts/jquery.validate.js"></script> 
.... 
<script type="text/javascript"> 
    var jQuery_1_7_0 = $.noConflict(true); // <- this 
</script> 

तो सत्यापन अनुभाग के लिए, नाम jQuery_1_7_0 सिर्फ अपने सत्यापन कोड के भीतर हर उदाहरण $ बदलना होगा।

jQuery_1_7_0(document).ready(function() { 

    jQuery_1_7_0.validator.addMethod(.... 

मैंने केवल एक उदाहरण की ओर इशारा किया है। आपने अपने सत्यापन अनुभाग के ठीक ऊपर .noConflict() के बिना jQuery का संस्करण भी शामिल किया है।

jQuery के इन एकाधिक संस्करणों को हल करने की आवश्यकता है, या तो डुप्लिकेट को हटाकर और एक संस्करण छोड़कर या प्रत्येक संस्करण को शामिल करने के बाद .noConflict() का उपयोग करके ठीक से हल किया जाना चाहिए।

आईएमओ, केवल jQuery के एक संस्करण का उपयोग करना सबसे अच्छा है।

प्रलेखन: Using jQuery .noConflict()

संबंधित मुद्दे