Kadi
@Kadi
веб-разработчик

Где в коде ошибка?

Всем привет!
Делаю динамичную форму, с указанием диапазона дат. Для выбора дат использую https://github.com/eternicode/bootstrap-datepicker
Динамичность формы заключается в том, что пользователь может добавлять строки.
Для каждой строки он должен указать диапазон дат.

Вроде всё работает, но есть одна Бага. Она заключается в том, что календарь не выходит с первого раза, только со второго :)
Не могу понять, где в коде ошибка. Браузер ошибок не показывает.

jsfiddle.net/vr7s5wqo

вот код формы:
<form action="" method="post">
	<div data-container="set">
		<div class="form_row" data-item="set">
			<div class="input-daterange input-group" id="datepicker_range">
				<span class="input-group-addon">с</span>
				<input type="text" class="input-md form-control" data-action="calStart" name="start" />
				<span class="input-group-addon">по</span>
				<input type="text" class="input-md form-control" name="end" />
			</div>
			<div class="form-group">
				<button type="button" data-action="remove" class="remove btn btn-default btn-warning">×</button>
			</div>
		</div>
		<footer>
			<button type="button" data-action="add" class="add btn btn-success">Добавить еще строку...</button>
		</footer>
	</div>
	<input type="submit" value="дальше" class="btn btn-primary btn-lg">
</form>


а вот код скрипта:
$(function () {
		var $container = $('[data-container="set"]'),
			$row = $container.find('[data-item="set"]').clone(true);

		$(document)
    // добавляет строку
			.on('click', '[data-action="add"]', function () {
				var $clone = $row.clone(true);
				$container.append($clone);
			})

    // удаляет строку
			.on('click', '[data-action="remove"]', function () {
				var $parent = $(this).closest('[data-item="set"]');
				$parent.remove();
			})

    // выводит календарь
			.on('click', '.input-daterange', function () {
				$(this).datepicker({
					viewMode: 'years',
					format: "dd.mm.yyyy",
					startDate: new Date('01.01.1996'),
					weekStart: 1,
					language: "ru",
					orientation: "top auto",
				});
			})
	});
  • Вопрос задан
  • 238 просмотров
Решения вопроса 1
JuSay
@JuSay
Залей на jsfiddle.net, а затем уже можно думать. Навскидку могу сказать, что скорее всего первый происходит инициализация, которая не должна быть на клике
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы