我想只让日历指定我的文本框输入,而不允许在我的日历文本框中的dijit.form.DateTextBox中使用键盘打孔的数字。有没有办法做到这一点?
感谢。
答案 0 :(得分:6)
以下代码可用于DateTextBox
只读:
<input data-dojo-type="dijit/form/DateTextBox"
data-dojo-id="effectiveDate"
type="text"
name="effectiveDate"
id="effectiveDate"
data-dojo-props="'readonly': 'readonly'"/>
答案 1 :(得分:3)
@Sudhir:如果您将小部件设置为已禁用,则您无法在日历上选择日期。
试试这个:
dojo.ready(function(){
dojo.connect(dijit.byId("yourcalendarid"), "onKeyPress", function(evt){
dojo.stopEvent(evt);
});
});
答案 2 :(得分:2)
我实际上最终使用了其他东西 - 这是我的解决方案:
dojo.addOnLoad(function () {
dojo.query(".dijitDateTextBox input[role='textbox']").forEach(function (node, index, arr) {
node.setAttribute('readonly', 'readonly');
});
});
通过将我需要的元素设置为“只读”,我得到了所需的效果。我在页面加载时执行此操作,我不确定开销,但重点是,它可以工作。
答案 3 :(得分:0)
您可以在输入中添加禁用参数:
<input type="text" name="startDate" dojoType="dijit.form.DateTextBox" constraints="{datePattern:'MM/dd/yyyy'}" value='' disabled validate='return true;' />
希望有所帮助
答案 4 :(得分:0)
在扩展窗口小部件中更新MrZombie的答案,您可以添加:
//to disable input from user at the textbox.s
startup:function(){
this.inherited(arguments);
dojo.connect(this, "onKeyPress", function(evt){
dojo.stopEvent(evt);
});
},
在小部件启动时。
答案 5 :(得分:0)
有两个选项可用于禁用dojo日期输入元素。
<强>代码强>
1)使用setDisabled(true)
方法
dijit.byId('id').setDisabled(true);
或
2)直接设置disable
属性。 (你需要禁用这两个元素)
dijit.byId(id).disabled = true;
dijit.byId(id).textbox.disabled = true;