我关注了 railscast 213 (calendars) from Ryan Bates
他使用文本输入字段来弹出日期选择器,效果很好。我想对输入日期进行限制,因此给出了以下属性:
$(function() {
$("#question_deadline").datepicker({ duration: 'fast', maxDate: '+2m', minDate: 'now' });
});
现在,当我按文本字段时,会弹出日期选择器,但我仍然可以通过在文本字段中输入来更改日期...所以我想我将 _form.html.erb 文件中的只读选项设置为 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");
});
});
问候, 泰斯
最佳答案
我想您可能会拦截“onChange”
事件,并验证控件中的值。 强制客户始终使用日期选择器可能不一定会受到所有人的欢迎。
我个人通常更喜欢键入日期而不是选择日期。
如果您验证日期,而该值恰好无效,您可以强制用户返回并显示日期选择器。我谦虚地相信这将是一种更加用户友好的方法。
关于javascript - Focus Rails3 上的只读文本输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6953595/