【发布时间】:2011-06-20 04:11:39
【问题描述】:
我将 jEditable 与 jQuery DatePicker 一起使用。我正在尝试对日期范围进行验证。例如,如果在 startDate 字段中选择了 2010 年 6 月 1 日,则用户无法在 endDate 字段中选择 2010 年 6 月 1 日之前的日期,反之亦然。
除验证部分外,所有其他代码均正常工作。我的理解是jEditable版本中包含了jQuery-ui DatePicker的完整版,但是我不知道怎么用。
这是我正在使用的 DatePicker:https://github.com/qertoip/jeditable-datepicker/tree/master/src
DatePicker 插件示例演示:http://thesingularity.pl/jeditable-datepicker-demo/
我的脚本
$( '#startDate' ).editable('AppUpdateServlet',{
indicator : '<img src="images/indicator.gif">',
type: 'datepicker',
datepicker: {
dateFormat: 'dd/mm/yy',
//minDate: '+1w' (this is working)
onSelect: function() {
//the alert is working
//alert("working");
//not working
$('#endDate').datepicker('option', {minDate: $(this).datepicker('getDate')});
}
}
});
$( '#endDate' ).editable('AppUpdateServlet',{
indicator : '<img src="images/indicator.gif">',
type: 'datepicker',
datepicker: {
dateFormat: 'dd/mm/yy',
onSelect: function() {
//not working
$('#startDate').datepicker('option', {minDate: $(this).datepicker('getDate')});
}
}
});
HTML sn-p
<span id="startDate">
<%=test.getStartDate()%>
</span>
<span id="endDate">
<%=test.getEndDate()%>
</span>
【问题讨论】:
-
您是否检查过您的
#startDate和#endDate选择器与 DOM 中的结果是否匹配? -
如何检查?我认为问题在于添加了 jEditable。这样,可能需要输入额外的参数,因此 $('#startDate').datepicker('option', {minDate: $(this).datepicker('getDate')});不工作
-
使用 DOM 检查器,例如 Chrome 中的检查器(“检查元素”)或 Firefox 的 Firebug,它应该告诉您如何识别文本输入,我不认为数据选择器实际上已附加到
#startDate和#endDate跨度。 -
我看到一大段文字,不确定要开始调试。我的可编辑选择器是正确的。我遇到的问题是我不知道如何修改可编辑函数中的数据选择器。问题出在这一行: $('#startDate').datepicker('option', {minDate:$(this).datepicker('getDate')}); $('#startDate').datepicker是指可编辑里面的datapicker还是需要参数。
-
如果文本输入真的是
#startDate,那么$('#startDate').datepicker('option', ...应该可以;但#startDate在您的 HTML 中是<span>,而不是文本输入。
标签: jquery jquery-ui datepicker jeditable mindate