将pickadate jquery插件应用于动态输入字段
Apply pickadate jquery plugin to a dynamic input field
我正在动态创建一个输入字段,并试图应用pickadate jquery插件,但它不工作。
我有一个按钮,当用户单击它时触发一个事件,然后在下面生成一个新字段,等等。
我有下面的代码来动态创建输入字段。
var x = InputsWrapper.length; //initlal text box count
$(AddButton).click(function (e) //on add input button click
{
if(x <= MaxInputs) //max input box allowed
{
FieldCount++; //text box added increment
//add input box
$(InputsWrapper).append('<div><input type="text"><a href="#" class="removeclass">×</a><div id="align_new"><ul><li><span>Start : </span><input type="text" class="datepicker" id="list'+FieldCount+'_start_date"></li><li><span>End : </span><input type="text" class="datepicker" id="list'+FieldCount+'_end_date"></li></ul></div></div>');
x++;
}
return false;
});
每个字段都有一个不同的id:从list2_start_date
和list2_end_date
开始,用户每次添加一个字段,编号就会增加。
在我的静态输入字段上,插件工作得很好,但它不能将插件应用于动态创建的字段。
我必须处理事件的函数是:
$(document).ready(function() {
$( '#list1_start_date' ).pickadate()
$( '#list1_end_date' ).pickadate()
$( '#list2_start_date' ).pickadate()
$( '#list2_end_date' ).pickadate()
$( '#list3_start_date' ).pickadate()
$( '#list3_end_date' ).pickadate()
$( '#list4_start_date' ).pickadate()
$( '#list4_end_date' ).pickadate()
$( '#list5_start_date' ).pickadate()
$( '#list5_end_date' ).pickadate()
});
和HTML:
<div id="InputsWrapper">
<span class="new_span">Field :</span>
<input type="text">
<span class="new_span" style="width:186px;"></span>
<div id="align_new">
<ul>
<li>
<span>Start :</span>
<input style="width:88px;" type="text" class="datepicker" id="list1_start_date">
</li>
<li>
<span>End :</span>
<input style="width:88px;" type="text" class="datepicker" id="list1_end_date">
</li>
</ul>
</div>
</div>
解决方案:
只需在追加部分后面添加.find():
$(InputsWrapper).append('<code_here>').find('.datepicker').pickadate();
代码得到:
$(InputsWrapper).append('<div><input type="text"><a href="#" class="removeclass">×</a><div id="align_new"><ul><li><span>Start : </span><input type="text" class="datepicker" id="list'+FieldCount+'_start_date"></li><li><span>End : </span><input type="text" class="datepicker" id="list'+FieldCount+'_end_date"></li></ul></div></div>').find('.datepicker').pickadate();
相关文章:
- 无法在 jquery 中的单击事件上生成动态输入字段
- 将动态输入表单数据保存到数据库kendoui中
- 如何从动态输入字段添加数字
- 带有动态输入的嵌套ng重复
- 如何正确地将动态输入字段传递到另一个页面进行显示
- 所有输入字段的动态输入长度
- 在AJAX中获取两个动态输入的值
- 访问ember中的动态输入值#ember中每个块
- 附加jQuery的后动态输入
- 在动态输入数据的下拉菜单中设置默认值
- Javascript - 验证 onSumbit 动态输入
- 动态输入文件中未加载任何数据
- 以 Meteor JS 形式存储动态输入值
- 将动态输入索引到其他动态输入数组
- 如何在创建动态输入文件时获取相同输入类型的单独 ID
- 如何编辑此动态输入文本区域 javascription
- 用于动态输入的JavaScript和HTML表单
- 使用 jquery 验证动态输入字段
- 使用验证器插件 Jquery 验证动态输入表单元素
- 从 jquery 动态输入字段获取值