我在尝试显示多个字段时遇到此问题,并且onclick on the datepicker应该运行,如果我把代码放在javascript之外就可以正常运行了,所以一定有什么问题我的$ .each循环它或附加,但不知怎的,我不能让它工作。
$(function() {
$(".datepicker").datepicker({
changeMonth: true,
changeYear: true,
dateFormat: "yy-mm-dd"
});
var val = [];
$(':checkbox:checked').each(function(i){
val[i] = $(this).attr("id");
});
if(val == "")
{
alert('no selection');
}
else
{
$.post("add_stuff", { "post" : val, "csrf" : cct },
function(data)
{
$("#content").empty();
json = eval('('+data+')');
$.each(json.datecheck, function() {
$("#content").append("<h2>" + this.pName + " - " + this.pDesc + "</h2>");
$("#content").append("<p>Datum: <input type='text' class='datepicker'></p>");
});
});
}
});
帖子 - &gt;在控制器中运行insert查询,并返回一些循环的json数据。 对于返回的每一行,我想要一个输入字段,一个工作的:) 真的很感激一些帮助,现在用这种方式挣扎太久了:/
答案 0 :(得分:4)
对jquery 1.9 +
使用.on()函数$(document).on('click', '.datepicker', function(){
$(this).timePicker({
changeMonth: true,
changeYear: true,
dateFormat: "yy-mm-dd"
}).focus();
$(this).removeClass('datepicker');
});
答案 1 :(得分:1)
当前绑定不起作用,因为该元素不存在 由于输入字段的添加是动态的,因此您需要使用JQuery live
示例 -
$('.datepicker').live('click', function(){
$(this).timePicker({
changeMonth: true,
changeYear: true,
dateFormat: "yy-mm-dd"
}).focus();
$(this).removeClass('datepicker');
});
答案 2 :(得分:0)
$(document).ready(function() {
$(".addSpan").click(function() {
var i = $("#dateTab input") .length + 1;
$("#dateTab").append($("<label>Date</label><input class='getDate id_"+ i +"' type='text' name='name[]' />"));
});
$( ".getDate" ).datepicker();
});