【发布时间】:2020-01-26 04:36:58
【问题描述】:
我有一个问题,如何在不使用其他按钮的情况下将输入标签从编辑切换为只读。我在这里有我的codepen。如果您注意到我在 div 上添加了一个事件。这有点愚蠢,因为当他们想要编辑时,他们单击输入,然后下一次单击将禁用它。我在某处看到了一些东西。他们实施了同样的事情。我可以阅读的任何链接?谢谢。
HTML
<div id='wasa'>
<input id="date" type="date" value="2018-07-22" >
</div>
JS
const test = document.querySelector('#wasa');
const date = document.querySelector('#date');
let foo = false;
test.addEventListener('click', function() {
foo = !foo
date.readOnly = foo;
console.log(foo)
})
【问题讨论】:
-
你希望它在什么条件下只读?您似乎已经知道如何将其设为只读。
-
@DeclanMcKelvey-Hembree 希望在用户不编辑它的情况下将其设为只读。如果他们想编辑它,他们可以完全控制。但我的问题是 onload 它将是只读的,如果我单击编辑并单击下拉编辑日期,它将再次变为只读。那是我的问题。希望有意义
-
“但不使用其他按钮” — 正如 Declan 所要求的,而不是使用按钮,如何(当,在什么条件下)你希望它改变吗?您当前的代码可以做到这一点,尽管 Nidhin 的回答是一种更好的方法。但是什么时候应该运行该代码?您说您不希望它在(按钮)单击时运行,所以当 do 您希望切换只读状态时?如果没有这些信息,就不清楚您在问什么。
-
@StephenP 所以 onload 我可以看到日期值,当我第一次单击输入字段时,我可以编辑它或删除只读,所以条件是输入字段为只读和用户点击,那是
readOnly将被删除的那一刻,因为只读被删除,他们可以编辑日期,用户可以点击下拉菜单并寻找一个日期,在他们选择一个日期后,它将返回只读。在玩了之后,我认为这是不可行的。我需要另一个按钮来切换只读。如果他们点击下拉菜单,那么它将返回只读 -
所以取消切换 - 以只读方式启动
<input id="date" type="date" value="2018-07-22" readonly>然后,当单击 div 时,使用date.removeAttribute('readonly')删除只读属性,如 Nidhin 所示。当挑选新日期时(或以任何方式键入或更改)change事件如果触发;附加一个更改侦听器date.addEventListener('change', function(){...})— 在 that 侦听器中(当字段为 changed 时)然后将 readonly 属性添加回date.setAttribute('readonly','');
标签: javascript jquery html css