gpt4 book ai didi

javascript - jQuery 时间选择器未加载动态文本字段

转载 作者:行者123 更新时间:2023-11-29 22:07:46 25 4
gpt4 key购买 nike

我有一个表单,它首先加载文本字段并有一个与之关联的时间选择器。用户还可以单击“更多”按钮,该按钮会在下方动态加载额外的文本字段。这也有一个与之关联的时间选择器,但是它不会加载到动态字段上。我正在使用 Trent Richardson 的 jQuery timepicker 插件 http://trentrichardson.com/examples/timepicker

我还找到了以前的答案 ( https://stackoverflow.com/questions/18666634/jquery-timepicker-doesnt-work-on-dynamic-input ),但这并不能解决我的问题。

这是表格;第一个 div 是动态加载的:

<div class="row">
<a href="#more" rel="[{$day}]" id="addhour_{$outlet}_{$day}" class="btn-more add-hours-link">Add More+</a>
<div class="sample" style="display: none;">
<label>&nbsp;</label>
<input type="text" class="outlet-hour from timepicker2" name="from[{$day}][]" />
<span>to</span>
<input type="text" class="outlet-hour to timepicker2" name="to[{$day}][]" />
</div>


<div>
<label for="from_{$outlet}_{$day}">{$name}</label>
<input id="from_{$outlet}_{$day}" class="outlet-hour from timepicker" type="text" name="from[{$day}][]" />
<span>to</span>
<input id="to_{$outlet}_{$day}" type="text" class="outlet-hour to timepicker" name="to[{$day}][]" />
</div>

这是主要字段的 JS(工作正常):

$('.timepicker').timepicker({
showSecond: false,
timeFormat: "H:mm",
stepMinute: 15
});

这是添加额外字段的 JS:

$(document).on('click', 'a.add-hours-link', function(event, hour){
var from = !!hour ? hour.from : '';
var to = !!hour ? hour.to : '';

$('.timepicker2').removeClass('hasDatepicker');
$('.timepicker2').each(function(){
$(this).timepicker({
showSecond: false,
timeFormat: "H:mm",
stepMinute: 15
});
});

$(this).parent().find('.sample')
.clone()
.removeClass('sample')
.appendTo($(this).parent())
.find('.from').val(from).end()
.find('.to').val(to).end()
.fadeIn('fast');

return false;
});

目前我已将该类重命名为 timePicker2 并正在删除 hasDatepicker 类,如之前的回答中所述。

任何想法表示赞赏。谢谢

最佳答案

添加到DOM后需要应用timepicker函数:

$(document).on('click', 'a.add-hours-link', function(event, hour){
var from = !!hour ? hour.from : '';
var to = !!hour ? hour.to : '';

$(this).parent().find('.sample')
.clone()
.removeClass('sample')
.appendTo($(this).parent())
.find('.from').val(from).end()
.find('.to').val(to).end()
.fadeIn('fast');

$('.timepicker2').removeClass('hasDatepicker');
$('.timepicker2').each(function(){
$(this).timepicker({
showSecond: false,
timeFormat: "H:mm",
stepMinute: 15
});
});

return false;
});

关于javascript - jQuery 时间选择器未加载动态文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19979560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com