jquery datepicker不会显示动态添加的输入

时间:2013-01-30 04:31:37

标签: jquery-ui dom dynamic jquery-ui-datepicker jquery-append

我有一张表,每个单元格都是表单的一部分。在我的表单中,我在输入元素上有一个jquery datepicker:

<form method="post" action="test.php">
                <table>
                    <tr>
                     ....
                        <td>
                            <input type="text" id="date" name="test"/>
                        </td>
                     ....
                    </tr>
                </table>
                <button type="button" id="addLine">Add line</button>
                <button id="submit" type="submit">Submit</button>
            </form>

我像这样添加我的日期选择器:

$(document).ready(function() {
            $('#date').datepicker({showAnim: "slideDown"});   
        });

问题出现了...我想在我的表中添加一行,但是datepicker不适用于新添加的行......

$(document).ready(function() {
            $('#addLine').click(function() {
                var line = $('<tr>...<input type="text" id="date" name="test"/>...</tr>');
                $('table').append(line);
              });
        });

出现新行,但是当我想插入一个值时,新创建的行上不会弹出datepicker。

我试图在我的.click中添加另一个$('#date')。datepiker()...(函数......但它不起作用。我也尝试刷新dom使用一个名为page()的方法..但是我有一个错误,该方法在元素上不存在。我需要你的帮助!

谢谢

1 个答案:

答案 0 :(得分:2)

您不能拥有多个具有相同值的ID,这可能会导致您的一些问题。请改用类名,例如class="date"

<input type="text" class="date" name="test"/>

由于您正在动态添加内容,因此在加载后,您可以启动datePicker功能。

所以:

line.find(".date").datepicker({showAnim: "slideDown"})

示例:http://jsbin.com/omoyiy/2/edit