我跟着railscast 213 (calendars) from Ryan Bates
他利用文本输入字段弹出日期选择器,这很好用。我想对输入日期给出限制,因此给出了以下属性:
$(function() {
$("#question_deadline").datepicker({ duration: 'fast', maxDate: '+2m', minDate: 'now' });
});
现在,当我按下文本字段时,弹出日期选择器,但我仍然可以通过在文本字段中键入来更改日期...所以我想我在_form.html.erb文件中将readonly选项设置为true这个特定的字段,这可以工作,但日期不会写入数据库。
然后我在application.js文件中创建了这个:
$(function() {
$("#question_deadline").datepicker({ duration: 'fast', maxDate: '+2m', minDate: 'now' });
});
$("#question_deadline").focus {
function()
$("#question_deadline").attr("readonly", true);
}
$("#question_deadline").blur {
function()
$("#question_deadline").removeAttr("readonly");
}
但是这会阻止日期选择器工作吗?
完全准备好了:
$(function() {
$("#question_deadline").focus(function() {
$("#question_deadline").attr("readonly", true);
});
});
$(function() {
$("#question_deadline").blur(function() {
$("#question_deadline").removeAttr("readonly");
});
});
此致 泰斯
答案 0 :(得分:0)
我想您可能会拦截"onChange"
事件,并验证控件中的值。 强制客户端始终使用日期选择器可能不一定受到所有人的欢迎。
我个人经常喜欢输入日期而不是选择日期。
如果您验证日期,并且该值恰好无效,您可以强制用户返回并显示日期选择器。我谦卑地认为这将是一种更加用户友好的方法。