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, время: 15:26. |