2010-04-13 62 views
1

我想添加一个Jquery日历选取器在创建时的文本框,但我无法找到如何。添加日历datepicker与动态表上的jquery

当我按下一个按钮,它会创建一个表,我要附加Jquery的日历选取的元素是:

var txtDate = createTextInput(i, "txtDate", 8, 10); 
txtDate.className = "datepicker"; 
this.newcells[i].appendChild(txtDate); 

我试图在最后补充道:

txtDate.datepicker(); 

但不起作用。任何人都可以帮忙吗?

谢谢。

注:CreateTextInput是:

function createTextInput(i, strName, size, maxLength) { 
    var input = document.createElement('<input>'); 
    input.type = "text"; 
    input.name = strName; 
    input.id = strName + i; 
    input.size = size; 
    input.maxLength = maxLength; 

    return input; 
} 
+0

谢谢到@Matti,@亚历山大和@Rahul,但你的答案目前还没有解决我的问题。 我不知道我在哪里放置那条线它不是正确的地方。 有人可以告诉我在哪里放$(txtDate).datepicker(); ? 我在this.newcells [i] .appendChild(txtDate)之后添加它。 谢谢。 – Amra 2010-04-13 10:36:47

+0

如果txtDate是你的文本框的ID,那么你必须这样写代码:$(“#txtDate”)。datepicker();' – rahul 2010-04-13 11:16:38

回答

1

使用

$("#txtDate").datepicker(); 

,而不是

txtDate.datepicker(); 

您可以创建使用jQuery轻松的元素。喜欢的东西

$("<input type='text' />").attr("id", '').appendTo("yourelement"); 

您可以重写createtextinput功能像这样的jQuery的

function createTextInput(i, strName, size, maxLength) { 
    return $("<input />".attr({ 
     type: 'text', 
     name: strName, 
     id: strName + i, 
     size: size, 
     maxLength: maxLength 
    });  
} 

如果要返回jQuery对象,那么你可以直接调用日期选择器(),像

txtDate.datepicker(); 
+0

会选择名称还是id ?,因为元素有一个id和一个不同于id的名字。谢谢。 – Amra 2010-04-13 10:07:09

+0

它是一个id选择器。 – rahul 2010-04-13 10:21:46

+0

如果你想选择使用名称,那么你可以写'$(“input [name = inputname]”) – rahul 2010-04-13 10:22:22

1

如果createTextInput返回一个普通的DOM节点,而不是一个jQuery对象,你需要在结果使用$()

$(txtDate).datepicker(); 
+0

这不起作用,我没有得到任何错误,但没有添加它。 有没有其他信息可以帮助你来帮助我? 谢谢。 – Amra 2010-04-13 10:05:59