2015-07-20 3 views
0

Я хочу, чтобы динамически изменять язык DateTimePicker JQuery плагин (http://xdsoft.net/jqplugins/datetimepicker/), и я получаю «неопределенный» ошибка для lang1 внутри последнего плагина вызова:Изменение языка динамически DateTimePicker JQuery плагин

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title>Datatimepicker</title> 
<link rel="stylesheet" href="css/jquery.datetimepicker.css"> 
    <script src="js/jquery-2.1.1.min.js"></script> 
    <script src="js/jquery.datetimepicker.js"></script> 
</head> 
<body> 
    <input id="datetimepicker" type="text" placeholder="Datetimerpicker"> 
    <input id="lang" type="text" placeholder="language" value="en"><div class="select">select language</div> 
    <script> 
      var lang1; 

     $(".select").click(function(){ 
     lang = $('#lang').val(); 
     lang1 = '"'+lang+'"'; 
     return lang1 
     }); 

     $(".select").click(function(){ 
      console.log(lang1); 
     $('#datetimepicker').datetimepicker({ 
      lang: lang1 
     }) 
     }); 
    </script> 
</body> 
</html> 

Не должно ли это работать?

ответ

1

Вы определили два обработчика щелчков, которые вы ожидаете в некоторой степени магически обменивать переменную lang1.

Вероятно, вы хотели этого:

$(".select").click(function(){ 
     var lang = $('#lang').val(); // 1 
     console.log(lang); // 2 
     $('#datetimepicker').datetimepicker({ lang: lang }); // 3 
    }); 
  1. Получить текущее значение языки из поля ввода #lang
  2. Вход на консоль
  3. Инициализировать DatePicker использовать язык lang.
+0

Я использовал два обработчика событий, чтобы решить еще одну проблему, которую я имел раньше (я обработаю это и сделаю, как вы говорите). Но учтите, что мой Datepicker - это не тот, на который вы ссылаетесь (см. Ссылку выше). Тем не менее, я получаю lang1 внутри второго обработчика событий (я знаю, потому что вывод console.log прекрасен), но не внутри подключаемого вызова. И это то, что возится с моей головой. –

+0

@PauloJaneiro: понял. Я читал слишком быстро, думал, что вы использовали датпикер JQueryUI. Я исправлю ответ. – wero

+0

Он отлично работает с вашим кодом, спасибо! Но можете ли вы объяснить, почему в моем коде lang1 существует в console.log внутри второго обработчика событий, но не работает внутри подключаемого модуля? Использование глобальной переменной, объявленной вне любой функции, не должно это сделать? –

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