因为文本框存储在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>
只有当我第二次点击文本框时才有效。如何在第一次点击时启用日历?
答案 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指定的技术