带有onclick事件的jquery datepicker

时间:2011-01-10 08:33:32

标签: asp.net jquery

因为文本框存储在viewstate中我无法使用此JS代码

<script type="text/javascript">
$(function() {
    $.datepicker.setDefaults($.datepicker.regional["sl"]);
    $(".inputTypeDate").datepicker({
        dateFormat: "dd.mm.yy",
        changeMonth: true,
        changeYear: true
    });
});
</script>

因为源代码中看不到文本框的代码。

所以我尝试在onlcick事件中使用它。

html示例:

<p>Date: <input type="text" id="datepicker" onClick="$(function() {$( '#datepicker' ).datepicker({changeMonth: true,    changeYear: true});});"></p>

只有当我第二次点击文本框时才有效。如何在第一次点击时启用日历?

2 个答案:

答案 0 :(得分:4)

如果您有多个具有相同ID的文本框,则它将无效。

为文本框添加类名,并将处理程序绑定到这些对象。像

这样的东西
$(function(){
    $("input:text.inputTypeDate").datepicker({
        dateFormat: "dd.mm.yy",
        changeMonth: true,
        changeYear: true
    });
});


<input type="text" class="inputTypeDate" />

修改

我不知道为什么你无法在源代码中查看元素。您是否动态生成元素(AJAX响应)。如果它是动态创建的元素,那么您将需要使用像livequery

这样的插件添加处理程序

答案 1 :(得分:0)

或者您可以尝试更改文本框的click事件处理程序,如下所示。

$(function(e) {e.preventDefault();$( '#datepicker' ).datepicker({changeMonth: true,    changeYear: true}).show();});

但我建议你尽可能遵循Rahul指定的技术