是否可以使用JavaScript切换表单元素中的禁用

Chr*_*268 -2 html javascript

我和下一个人一样爱JQuery,但我只想用JavaScript完成此任务。我一直在搜寻互联网,我所能找到的只是JQuery解决方案和几个无法正常工作的JavaScript解决方案。是我所能找到的最干净的一个,但它似乎不适用于任何人,但它确实很旧。我什至无法将它的工作原理包起来,而是将变量设置为赋值。

无论如何,我将代码放在一个中,JsFiddle因此易于操作。

这只是JS中过于复杂的任务之一,然后JQuery进来并完全简化了它吗?

谢谢!

EJT*_*JTH 5

... *是*

element.disabled = !element.disabled;
Run Code Online (Sandbox Code Playgroud)

它的作用应该很明显,但是也许您是JS或编程的新手,所以我将尝试解释一些基本的代码错误:

三元分配

确实,您确实分配了一个变量,但从未使用过,也许您的意思是这样的

element.disabled = element.disabled ? false : true;
Run Code Online (Sandbox Code Playgroud)

尽管这可能行得通,但仍然太冗长,您是一个程序员,请聪明!

布尔否定

那就是!(boolean negate)出现的地方,因为您要切换boolean,所以您最好使用not / negate运算符来否定当前状态。

element.disabled = !element.disabled;
Run Code Online (Sandbox Code Playgroud)

这是很普遍的,并且存在于大多数(即使不是全部)编程语言中,在JS中,它会自动将值转换为布尔值true / false,如果您还不熟悉javascript,则应阅读有关强制类型的内容。

以及为什么element.disabled分配会更改状态

我想这是特定于实现的,但是我会假设内部javascript使用getter / setter,尽管它们在javascript中不存在...但是,这将随着ECMA6的改变而改变!