一些简单的代码;
<form action="#" method="post">
<div id='datepicker'>
<label for="start_date">Start of cover</label>
<input readonly required="required" type='text' name="start-date" id="start-date" value=""/>
</div>
<input name="bind" id ="get-bind" type="submit" value="submit"/>
</form>
input
,#start-date
拥有Keith Wood的datepick jQuery扩展。工作良好。
但它不会触发更改事件,因此此代码的第二部分(都包含在$(document).ready
中不起作用;
$('#get-bind').attr("disabled", true);
$('#start-date').change(function() {
window.alert ("Changed!");
$('#get-bind').attr("disabled", false);
});
我可以在调试器中看到更改函数已正确绑定,只是日期选择器不会触发它,即使值实际发生了变化。
有一个小问题,即datepicker似乎删除了日期字段的必需属性,即使该属性仍然存在于这样的代码中;
<input readonly required name="start-date" id="start-date" value="" class="is-datepick" type="text">
答案 0 :(得分:0)
答案(与jQuery的Datepicker相同的是,目标字段的事件被忽略,因此您必须使用datepicker本身内的事件。
$('#start-date').datepick({
onClose: function() {
$('#get-bind').attr("disabled", false);
}
});
更有帮助,我需要检查是否选择了日期,因为即使未选择日期,onClose也会触发,我这样做了;
onClose: function() {
if ($('#start-date').val()) {
$('#get-bind').attr("disabled", false);
}
}
因此,如果未选择日期,则提交按钮将保持禁用状态。