2016-03-15 3 views
-1

Я работаю с asp.net, и я был очень доволен Html Helper, который делает редактор для дат, но я видел, что он несовместим с сафари, поэтому я решил использовать javascript date picker ,Javascript date picker asp.net mvc

Так я установил jquery.ui.combined, помещенный каждый (возможно, слишком много) делаю или <script> и я попытался сделать выбор даты с помощью следующего кода, но ничего Append:

<script> 
     $(function() { 
     $("#datepicker").datepicker($.datepicker.regional[ "fr" ]); 
     $("#locale").change(function() { 
      $("#datepicker").datepicker("option", 
      $.datepicker.regional[ $(this).val() ]); 
     }); 
     }); 
    </script> 
    //more code 
    <input type="text" id="datepicker"> 

Может кто-то объяснить, почему ? Заранее спасибо !

+0

можете ли вы воспроизвести это на jsfiddle? –

+0

https://jsfiddle.net/qvt4zj9x/2/ Не уверен, что это то, чего вы хотите, но я не могу лучше – MrPixel6

+0

Хорошо работает для меня. Вы включаете пользовательский интерфейс jquery и jquery? И включаете ли вы сначала JQuery, а затем пользовательский интерфейс jquery? –

ответ

1

Ну вот как я предлагаю вам сделать:

<script> 
    $(function() { 
    $("#datepicker").datepicker($.datepicker.regional['fr']); 
    $("#locale").change(function() { 
     var locale = $.datepicker.regional[$(this).val()]; 
     //destroy previose datapicker 
     $("#datepicker").datepicker("destroy"); 
     //init new one 
     $("#datepicker").datepicker(locale); 
    }); 
    }); 

</script> 

<select id="locale"> 
    <option val="fr">fr</option> 
    <option val="en">en</option> 
    <option val="ru">ru</option> 
    <option val="de">de</option> 
</select> 
<input type="text" id="datepicker"> 

Я создал jsFiddle example от ваших.

Обратите внимание, что вы должны добавить этот i18n скрипт, чтобы сделать его работу:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/i18n/jquery-ui-i18n.min.js"></script> 

Вы должны добавить в корзину head этого:

<script type="text/javascript" src="//code.jquery.com/jquery-1.9.1.js"></script><style type="text/css"></style> 
<link rel="stylesheet" type="text/css" href="https://ajax.aspnetcdn.com/ajax/jquery.ui/1.9.2/themes/black-tie/jquery-ui.css"> 
<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jquery.ui/1.9.2/jquery-ui.min.js"></script> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/i18n/jquery-ui-i18n.min.js"></script> 
+0

Спасибо, но это не мой код, который не работает. Это что-то с моим импортом, и я не могу найти, где проблема ... – MrPixel6

+0

@ MrPixel6 вы можете просто скопировать импорт из примера. И затем выясните, где ваша проблема, когда каждый раз меняя свои сценарии –

+0

Я скопировал все, и он все еще не работает, имеет только пустой ввод без календаря :( – MrPixel6

0

Im предполагая, что вы получили ответ на свой вопрос выше. Тем не менее, это лучший способ получить скрипт в js-файле.

Допустим, вы создаете JS файл, например так:

$.myApplication = { 

    init: function(){ 

     $("#datepicker").datepicker($.datepicker.regional[ "fr" ]); 

     $("#locale").change(function() { 
     $("#datepicker").datepicker("option", 
      $.datepicker.regional[ $(this).val() ]); 
     });  
    } 

} 

мнение, где вы хотите, чтобы выполнить скрипт:

@section Scripts { 
    <script type="text/javascript"> 
     $(function() { 
      $.myApplication.init(); 
     }) 
    </script> 
    } 

В вашем bundleconfig:

bundles.Add(new ScriptBundle("~/bundles/CustomScripts").Include(
        "~/Scripts/MyApp.js")); 

макета :

@Scripts.Render("~/bundles/CustomScripts")