Текстовое поле Jquery Template не отображает указатель даты - PullRequest
0 голосов
/ 29 декабря 2010

Я использую Datepicker для одного из текстовых полей в шаблоне Jquery, но он не появляется. Снаружи шаблон работает нормально. Вот что я хочу сделать.

jQuery().ready(function () {

  //$("#HireDate").datepicker();
  $("#HireDate").datepicker({dateFormat:'dd-mm-yy', showAnim:'fadeIn'})


});

<script id="UserDetailTemplate" type="text/x-jquery-tmpl">

<table style="width:100%;">
        <tbody>             

                        <tr>
                            <td style="width:25%;font-weight:bold;">HireDate:</td>
                            <td><input type="text" id="HireDate" value="${ HireDate }" /></td>
                        </tr>  

                    </table>                         
                    </td>
            </tr>
        </tbody>
</table> 
 </script> 

1 Ответ

1 голос
/ 29 декабря 2010

Элемент #HireDate не существует, пока вы не используете шаблон для вставки некоторого содержимого на страницу. Таким образом, когда вы пытаетесь привязать указатель даты, когда DOM готов, $('#HireDate') возвращает пустой список (т.е. $('#HireDate').length == 0), и ничего полезного не происходит.

Решение состоит в том, чтобы связать указатель даты после , когда шаблон заполнен и вставлен на страницу. Примерно так:

$('#UserDetailTemplate').tmpl(data).appendTo('#something');
$('#HireDate').datepicker({ dateFormat: 'dd-mm-yy', showAnim: 'fadeIn' });
...