在新添加的行上添加jquery datepicker事件

时间:2015-02-28 16:14:57

标签: jquery jquery-ui-datepicker

我有以下javascript代码,以便在表格上添加新行。 最近我添加了一个jquery datepicker,但以下代码似乎无法正常工作。我怎样才能使它发挥作用?

function addLine(idTab,idRow,idForm,idContatore){

    var numLine=document.getElementById(idTab).rows.length-1;
    var tbody = document.getElementById
    (idTab).getElementsByTagName("TBODY")[0];
    var oldLine=document.getElementById(idRow);
    var newLine=oldLine.cloneNode(true);
    numLine++;

    updateAttributes(newLine,'id',numLine);
    updateAttributes(newLine,'name',numLine);

    //resetValue(newRiga,'input');
    //resetValue(newRiga,'textarea');

    tbody.appendChild(newLine);
    tbody.appendChild(newLine);

    //attach datepicker
    $(".datepick").datepicker();

    document.getElementById(idContatore).value=numLine;

    //alert (numLine+' '+idContatore);

    //alert(document.getElementById(idContatore).value);
}

function updateAttributes(node,attr,newNum){
    if(node.hasChildNodes)
        for(var k=0,l=node.childNodes.length;k<l;k++)
            updateAttributes(node.childNodes[k],attr,newNum);

    if(node[attr]){
        var newAttrValue=node[attr].replace(/[0-9]+/,newNum);
        var IE=(document.all && !window.opera)?1:0;
        if(attr=='htmlFor'){
            node.removeAttribute(attr);
            attr=(IE)?'htmlFor':'for';
        }
        if(attr=='name' && node.type && node.type=='radio' && document.all && !window.opera)
            node.outerHTML=node.outerHTML.replace(/name=[^\s>]+/g, 'name='+newAttrValue);
        else node.setAttribute(attr,newAttrValue);
    }
}

2 个答案:

答案 0 :(得分:0)

我通过在addLine函数的开头添加che语句$(&#34; .datepick&#34;)来解决这个问题.datepicker(&#34; destroy&#34;); 。 我正在使用jquery

更好地添加行

答案 1 :(得分:0)

对于所有日期选择器,您可以使用此代码。 classname应该相同

$('body').on('focus',".date-picker", function(){
$(this).datepicker();
});