Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动态添加JQuery Datepicker以形成元素_Jquery_Html_Forms_Dynamic_Jquery Ui Datepicker - Fatal编程技术网

动态添加JQuery Datepicker以形成元素

动态添加JQuery Datepicker以形成元素,jquery,html,forms,dynamic,jquery-ui-datepicker,Jquery,Html,Forms,Dynamic,Jquery Ui Datepicker,我正在使用克隆方法处理具有动态添加输入的表单。每个输入都需要一个日期选择器。 每个输入的名称对于输出都是不同的 我正在为此使用jQueryUIDatePicker。 出现的问题(控制台中的消息)是“$cloned.find(…).attr(…)未定义” 我去了另一个帖子 并尝试删除hasDatepicker类(包含在下面的代码中),但问题仍然存在。 感谢您的任何投入或资源 代码如下: <table> <tr> <td name="a" class="FormL

我正在使用克隆方法处理具有动态添加输入的表单。每个输入都需要一个日期选择器。
每个输入的名称对于输出都是不同的

我正在为此使用jQueryUIDatePicker。 出现的问题(控制台中的消息)是“$cloned.find(…).attr(…)未定义”

我去了另一个帖子
并尝试删除hasDatepicker类(包含在下面的代码中),但问题仍然存在。
感谢您的任何投入或资源

代码如下:

 <table>
 <tr>
 <td name="a" class="FormLabel" width="100px"><strong>Class Year*</strong></td>
 <td width="100px"><input type="text" id="datepicker" name="ClassYear_1" class="usedatepicker" value="" tabindex="4" /></td>
  </tr>
  </table>
  <button type="button" id="add-btn" name="add-btn">Add Class Year</button>

克隆/插入新表行后,您有
.usedatepicker
类的新元素尚未使用datepicker初始化

我注意到您正在尝试在将新行添加到DOM之前使用datepicker初始化新行。两个问题。首先,您试图将datepicker初始化到整个(新)行,而不仅仅是输入字段,其次,在将该行注入DOM后必须执行此操作

试着这样做:

function clone2(){
    var $cloned = $('table tr:last').clone();
    $cloned.removeClass('hasDatepicker').datepicker();
    //console.log($(this));
    //alert($(this).attr('name'));
    var oldIndex = $cloned.find('input').attr('name').match(/\d+/);
    var newIndex = parseInt(oldIndex,10)+1;
    $cloned.find('input').each(function(){
        var newName = $(this).attr('name').replace(oldIndex, newIndex);
        $(this).attr('name', newName);
    });
    $cloned.insertAfter('table tr:last');

    $(".usedatepicker").datepicker();  //<=== NEW
}
函数克隆2(){
var$clone=$('table tr:last').clone();
$cloned.removeClass('hasDatepicker').datepicker();
//log($(this));
//警报($(this.attr('name'));
var oldIndex=$cloned.find('input').attr('name').match(/\d+/);
var newIndex=parseInt(oldinex,10)+1;
$cloned.find('input')。每个(函数(){
var newName=$(this.attr('name').replace(oldIndex,newIndex);
$(this.attr('name',newName);
});
$cloned.insertAfter('table tr:last');

$(.usedatepicker”).datepicker();//克隆/插入新表行后,具有
.usedatepicker
类的新元素尚未使用datepicker初始化

我注意到您试图在将新行添加到DOM之前使用datepicker初始化新行。有两个问题。首先,您试图将datepicker初始化到整个(新)行,而不仅仅是输入字段,第二,您必须在将该行注入DOM后执行此操作

试着这样做:

function clone2(){
    var $cloned = $('table tr:last').clone();
    $cloned.removeClass('hasDatepicker').datepicker();
    //console.log($(this));
    //alert($(this).attr('name'));
    var oldIndex = $cloned.find('input').attr('name').match(/\d+/);
    var newIndex = parseInt(oldIndex,10)+1;
    $cloned.find('input').each(function(){
        var newName = $(this).attr('name').replace(oldIndex, newIndex);
        $(this).attr('name', newName);
    });
    $cloned.insertAfter('table tr:last');

    $(".usedatepicker").datepicker();  //<=== NEW
}
函数克隆2(){
var$clone=$('table tr:last').clone();
$cloned.removeClass('hasDatepicker').datepicker();
//log($(this));
//警报($(this.attr('name'));
var oldIndex=$cloned.find('input').attr('name').match(/\d+/);
var newIndex=parseInt(oldinex,10)+1;
$cloned.find('input')。每个(函数(){
var newName=$(this.attr('name').replace(oldIndex,newIndex);
$(this.attr('name',newName);
});
$cloned.insertAfter('table tr:last');

$(.usedatepicker”).datepicker();//非常感谢您的帖子。关于Jquery datepicker中的不同ID,我有一个问题。当使用此(),Jquery Datepicker生成唯一的id。虽然我当然可以像您所说的那样生成它们,但我想知道为什么本机id生成在这种情况下似乎不起作用?我在这里使用了您的建议(),尽管现在,我可以生成所有新的(克隆的)id我想要的输入,前提是没有一个输入框被点击。第一行输入框只会在第二个框被点击/触发后触发日期选择器。只有前两个框才会触发。我的新代码有不同的ID。我尝试删除ID和ID代码,只是离开类,但结果相同。要修改我的上一条注释-控制台中的错误消息是:
TypeError:$cloned.find(…).attr(…)未定义
非常感谢您的帖子。关于Jquery Datepicker中的不同ID,我有一个问题。当像这样使用时(),Jquery Datepicker生成唯一的id。虽然我当然可以像您所说的那样生成它们,但我想知道为什么本机id生成在这种情况下似乎不起作用?我在这里使用了您的建议(),尽管现在,我可以生成所有新的(克隆的)id我想要的输入,前提是没有一个输入框被点击。第一行输入框只会在第二个框被点击/触发后触发日期选择器。只有前两个框才会触发。我的新代码有不同的ID。我尝试删除ID和ID代码,只是离开类,但结果相同。要修改我的上一条注释-控制台中的错误消息是:
TypeError:$cloned.find(…).attr(…)未定义