replace не функция для строки?
Есть jquery плагин http://trentrichardson.com/examples/timepicker/
Его пытаюсь настроить $('.hasDatetime').timepicker({ timeFormat: $(this).attr('data-format') }); html-инпут <input id="form_length" class="span6 hasDatetime hasDatepicker" type="text" data-format="HH:mm:ss" aria-required="true" required="" value="01:44:00" name="form[length]"> Но получаю ошибку "Error: TypeError: timeFormat.replace is not a function". Ошибка в следующем: (timeFormat.replace(/\'.*?\'/g, '').indexOf('Z') !== -1)и далее по тексту плагина есть ещё несколько таких обработок. PS! var time_format = function(obj){ return $(obj).attr('data-format'); } $('.hasDatetime').timepicker({ timeFormat: time_format }); В таком варианте та же самая ошибка. Как ему передать параметр-то? |
Viper,
вариант ... $('.hasDatetime').timepicker({ timeFormat: $('.hasDatetime').data('format') }); |
Вообще непонятно зачем вы через класс обращаетесь когда у вас есть ид
<input id="form_length" class="span6 hasDatetime hasDatepicker" type="text" data-format="HH:mm:ss" aria-required="true" required="" value="01:44:00" name="form[length]"> <script> alert(form_length.getAttribute("data-format")); </script> |
Цитата:
Цитата:
|
рони,
не помогло. Если инпутов несколько, то срабатывает только на первом, на остальных значение по нулям. Если заменить класс на this, то в результате значение будет взято только с последнего обработанного инпута и применено к всем. Poznakomlus, инпут не один, а несколько. Яростный Меч, string. В самом плагине она объявлена как var Timepicker = function () { this.regional = []; this.regional[''] = { timeFormat: 'HH:mm', ... }; } |
Цитата:
<!DOCTYPE HTML> <html> <head> <base href="http://trentrichardson.com/examples/timepicker/" /> <title>Untitled</title> <meta charset="utf-8"> <link rel="stylesheet" media="all" type="text/css" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" /> <link rel="stylesheet" media="all" type="text/css" href="jquery-ui-timepicker-addon.css" /> <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script> <script type="text/javascript" src="http://code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script> <script type="text/javascript" src="jquery-ui-timepicker-addon.js"></script> <script type="text/javascript" src="jquery-ui-sliderAccess.js"></script> <script> $(function () { $('.hasDatetime').each(function (i, el) { $(el).timepicker({ timeFormat: $(el).data('format') }) }) }) </script> </head> <body> <input class="span6 hasDatetime" type="text" data-format="HH:mm:ss" aria-required="true" required="" value="01:44:00" name="form[length]"> <input class="span6 hasDatetime" type="text" data-format="HH:mm" aria-required="true" required="" value="01:44:00" name="form[length]"> <input class="span6 hasDatetime" type="text" data-format="HH" aria-required="true" required="" value="01:44:00" name="form[length]"> </body> </html> |
Цитата:
Используй .each(). Вместо attr('data-format') пиши data('format'), как предложил рони. |
Viper,
если в Timepicker передается элемент, то здесь же и получаете значение атрибутов этого элемента. Из приведенного когда Timepicker не понятно (не видно) где и как вы обрабатываете переданный аргумент timeFormat и заметьте Timepicker и timepicker <script> a = function(){return 1;} A = function(){return 2;} alert(a()); alert(A()); </script> |
рони,
что-то я совсем забыл про цикл :) Всем спасибо за помощь! |
Часовой пояс GMT +3, время: 11:04. |