2013-05-31 7 views
1

Это часть бритвы mvc 3. У меня есть несколько блоков редактора в форме и вы хотели добавить немного jquery, чтобы повысить надежность формы. Однако я получаю странную ошибку, и это не имеет смысла для меня.Получение Uncaught TypeError: Object [object Object] не имеет метода 'jqxmaskedinput'

Сначала давайте посмотрим на представление.

<link type="text/css" rel="stylesheet" href="/content/jquery-ui-1.8.16.custom.css"/> 
<link type="text/css" rel="stylesheet" href="/content/site9.css"/> 
<link rel="stylesheet" href="@Url.Content("~/jqwidgets/styles/jqx.base.css")" type="text/css" /> 
<link rel="stylesheet" href="@Url.Content("~/jqwidgets/styles/jqx.darkblue.css")" type="text/css" /> 
<script src="@Url.Content("~/Scripts/jquery-1.10.1.min.js")" type="text/javascript"> </script> 
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.16.custom.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/jqwidgets/jqxcore.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/jqwidgets/jqxvalidator.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/jqwidgets/globalization/globalize.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/jqwidgets/jqxmaskedinput.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/jqwidgets/jqxinput.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/jqwidgets/gettheme.js")" type="text/javascript"></script> 


<script language="javascript" type="text/javascript"> 
$(document).ready(function() { 
    $('#date_paid').datepicker(); 
    $("#first_name").jqxInput({ placeHolder: "First Name", width: 200, height: 25, theme: 'darkblue' }); 
    $("#last_name").jqxInput({ placeHolder: "Last Name", width: 200, height: 25, theme: 'darkblue' }); 
    $("#middle_initial").jqxInput({ placeHolder: "Middle Initial", width: 150, height: 25, theme: 'darkblue' }); 
    $("#zip_code").jqxmaskedinput({ mask: '#####-####', width: 150, height: 25, theme: 'darkblue' }); 

}); 

<div class="editor-label"> 
     <label>First Name</label> 
     @Html.EditorFor(Function(model) model.first_name) 
     @Html.ValidationMessage("first_name", "*") 

     <label class="small_spacing">Middle Initial</label> 
     @Html.EditorFor(Function(model) model.middle_initial) 
     @Html.ValidationMessage("middle_initial", "*") 

     <label class="small_spacing">Last Name</label> 
     @Html.EditorFor(Function(model) model.last_name) 
     @Html.ValidationMessage("last_name", "*") 
    </div> 
     <div class="editor-label"> 
    <label>City</label> 
     @Html.EditorFor(Function(model) model.city) 
     @Html.ValidationMessage("city", "*") 

    <label class="spacing">State</label> 
     @Html.DropDownListFor(Function(model) model.State, New SelectList(ViewBag.states), New With {.class = "StateDrop"}) 
     @Html.ValidationMessageFor(Function(model)model.State) 

    <label class="small_spacing">Zip Code</label> 
     @Html.EditorFor(Function(model) model.zip_code) 
     @Html.ValidationMessage("zip_code", "*") 
    </div> 

Все это выглядит великолепно, однако, что jqxmaskedinput бросает ошибку ниже.

Uncaught TypeError: Object [object Object] has no method 'jqxmaskedinput' 

И коробки jqxInput работают нормально. Если я удалю блоки jqxInput, jqxmaskedInput работает нормально. Я думал, что это, возможно, проблема совместимости между двумя, но на jqWidgets я нашел пример, который использует как jqxInput, так и jqxmaskedInput, поэтому маловероятно, что это проблема совместимости. Будучи полным nooblet в этой области, я теряюсь относительно того, что может быть причиной этого. Любые предложения приветствуются.

+1

Вы уверены, что не имеете в виду 'jqxMaskedInput'? <- note case –

+0

Wow это новый для меня .. Очевидно, javascript придирчив к порядку, который вызывают методы, на основе порядка загрузки файлов javascript. – Skindeep2366

+0

Я понял, что мне пришлось переместить '$ (« # zip_code »). JqxMaskedInput ({mask: '##### - ####', width: 150, height: 25, theme: 'darkblue' }); 'up, чтобы он соответствовал порядку загрузки файлов javascript. Не знаю, почему это было придирчиво, но это сработало. – Skindeep2366

ответ

1

Javascript чувствителен к регистру. Призыв к .jqxmaskedinput должен был быть .jqxMaskedInput.

Смежные вопросы