当我用jquery datepicker创建输入字段时,它不起作用。
我尝试
$(function() {
$('.datepick').each(function(){
$(this).datepicker();
});
});
jQuery生成的输入:
<input name="date[]" class="pure-input-1-2 datepick" type="text" value="">
jQuery代码生成输入字段
$(document).ready(function() {
var max_fields = 10; //maximum input boxes allowed
var wrapper = $(".input_fields_wrap"); //Fields wrapper
var add_button = $(".add_field_button"); //Add button ID
var x = 1; //initlal text box count
$(add_button).click(function(e){ //on add input button click
e.preventDefault();
if(x < max_fields){ //max input box allowed
x++; //text box increment
$(wrapper).append('<div>'+
'Iskustvo od: <input name="date[]" class="pure-input-1-2 datepick" type="text" value="">'+
'<a href="#" class="remove_field">Remove</a></div>'); //add input box
}
});
$(wrapper).on("click",".remove_field", function(e){ //user click on remove text
e.preventDefault(); $(this).parent('div').remove(); x--;
})
});
您的代码会将日期选择器附加到jQuery的“事件”中文档.datepick
中已存在的任何元素上,ready
但不会对以后添加的任何元素做任何事情。
如果以后添加另一个元素,则需要显式地将日期选择器附加到该元素,大概是在添加该元素的代码中。
例如,在添加元素之后,此代码会将日期选择器附加到.datepick
尚无日期选择器的任何位置:
$(".datepick").not(".hasDatepicker").datepicker();
的原因.not(".hasDatepicker")
是,日期选择器在对元素进行初始化时,将其添加到元素中,因此,通过使用.not
,我们可以过滤掉已经设置的元素,而不是再次设置它们。
重新编辑,显示添加输入的代码,只需添加调用即可:
wrapper.append('<div>'+
'Iskustvo od: <input name="date[]" class="pure-input-1-2 datepick" type="text" value="">'+
'<a href="#" class="remove_field">Remove</a></div>'); //add input box
wrapper.find(".datepick").datepicker(); // <=====
另请注意,我$()
从周围删除了wrapper
;wrapper
是已经一个jQuery对象,不需要调用$()
再次在一个循环反复少得多。
或者再次,只需将我之前给出的单行代码放在该代码的末尾。
旁注:each
在您的代码中没有理由进行调用,只会$(".datepick").datepicker();
为您循环遍历它们。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句