我希望用户只能通过其按钮更改Kendo UI Datepicker值,并从弹出窗口中选择日期。如何阻止用户在Datepicker文本框中输入内容?我可以在不禁用整个控件的情况下禁用文本框吗?
答案 0 :(得分:47)
在输入元素上添加此属性和值...
onkeydown="return false;"
这将禁用键入输入并仍允许使用日历控件输入。
答案 1 :(得分:10)
使用以下控件 -
@(Html.Kendo().DatePicker()
.Name("FromDate")
.HtmlAttributes(onkeydown="javascript:return false;" })
)
它将禁用键盘输入。同样可以处理其他条件。
答案 2 :(得分:8)
找到您的输入元素,并将其禁用
$('#datepicker').attr('disabled','disabled');
(在剑道演示网站http://demos.kendoui.com/web/datepicker/index.html上尝试过)
答案 3 :(得分:6)
你可以通过两种方式做到这一点
//disable kendo ui datapicker click event
$(".k-datepicker input").bind('click dblclick',function () {
return false;
});
//make it readonly
$(".k-datepicker input").prop("readonly", true);
答案 4 :(得分:3)
如果您想阻止用户在日期选择器中输入日期,并且只从弹出窗口中选择日期,请尝试使用此代码
$(".k-datepicker").find('span').find('input').attr("readonly", "readonly");
答案 5 :(得分:1)
当然,日期和时间选择器小部件应该可以选择仅使用UI而不是键盘强制输入...否则它是真正的DateTime“形成”噩梦的秘诀! 我很惊讶框架没有为这个明显的用例提供任何东西。
我有同样的需求,并使用以下逻辑使其工作:
$("#date").kendoDatePicker({
format: "dd MMMM yyyy"
});
$("#date").attr("readonly","readonly");
这样,用户无法通过键盘输入值,只能使用下拉日期选择窗口输入格式良好的日期。
答案 6 :(得分:0)
实际上,小部件在输入时不会限制用户。这种行为的原因在这里解释: Why widget does not restrict typing
与此线程中共享的所有其他解决方案一起,可以创建自定义Masked DatePicker,这将限制用户使用特定的日期格式。有关详细信息,请查看此操作演示:
**请注意,Kendo UI不支持此功能作为内置功能,因此您需要自担风险使用它。好消息是它没有已知的副作用,效果很好。
答案 7 :(得分:0)
Justin的答案有效,但是并不能防止右键单击粘贴错误的值。您可以使用oncontextmenu
来防止右键单击
oncontextmenu="return false;"
这也将防止复制日历中的数字。
答案 8 :(得分:0)
对于tagHelpers,只需使用以下内容
output.Attributes.Add("onkeydown", "javascript:return false;");
答案 9 :(得分:-1)
.HtmlAttributes(new { onkeydown="return false" })