检测输入类型html上的日历更改

时间:2012-12-19 04:00:46

标签: javascript jquery datetimepicker

我使用了所谓DateTimePicker.js的日历,并在我的html上使用了它,例如:

<input id="startDate" name="startDate" id="startDate" type="text" size="20" value="">
    <a href="javascript:NewCssCal('startDate','ddMMyyyy','arrow')">
        <img src="images/cal.gif" width="16" height="16" border="0" alt="Pick a date"/></a>
</input>

问题是,我如何检测日历上的任何更改,因为我尝试使用以下jQuery进行测试,但显然它不起作用:

   <input id="startDate" name="startDate" id = "startDate" type="text" size="20"  value="">
   <script type="text/javascript">$(document).ready(function() {
        $("#startDate").bind('change', function(e) {
            alert('changing date!');
        });
    });
   </script>
   <a href="javascript:NewCssCal('startDate','ddMMyyyy','arrow')">
      <img src="images/cal.gif" width="16" height="16" border="0" alt="Pick a date"/>
   </a>
   </input>

1 个答案:

答案 0 :(得分:1)

输出(viewsource)类似于

<input id="startDate" readonly="readonly" name="startDate" id = "startDate" type="text" size="20"  value="">

其中包含 readonly =“readonly”,这会使您的输入只是由于未引发更改事件而导致的。

解决方案:

1)在页面加载时,创建一个变量并将startDate文本框值存储在其中,使用settimeout函数定期检查变量的文本框值,并调用函数来更改文本框。

2)文档准备好并加载dom后,编写代码将textbox readonly属性设置为FALSE并设置disabled = true。然后绑定并使用change事件。

$(document).ready(){function(){  your code here });

3)使用jquery UI datepicker,它易于使用和实施。