代码之家  ›  专栏  ›  技术社区  ›  Kev

是否也应设置'checkbox.checked=false`不清除HTML属性?

  •  9
  • Kev  · 技术社区  · 15 年前

    这是我的HTML:

    <input id="test" type="checkbox" checked="">
    

    以下是Firebug摘录:

    >>> test
    <input id="test" type="checkbox" checked="">
    
    >>> test.checked = false
    false
    
    >>> test
    <input id="test" type="checkbox" checked="">
    

    嗯……我是缺了什么东西,还是最后一行不读下面的内容?

    <input id="test" type="checkbox">
    

    在用户界面上,当我执行 checked = false 线。

    无论如何,如果对此有一些合理的解释,那么从javascript中取消选中复选框的正确方法是什么,如果不是这样的话 检查=假 ?

    3 回复  |  直到 15 年前
        1
  •  23
  •   Justin Johnson    15 年前

    这个 value 属性 input type="text" 以及 checked selected 的属性 input type="checkbox" , radio option 对应表单域的初始值, 用户或脚本设置的当前值。从而改变 选中的 属性不更改属性值,并且设置 选中的 属性不会更改将与表单一起提交的实际可见值。

    这个 checked="checked" 属性对应于 defaultChecked DOM property 而不是 选中的 财产。同样, value="..." 属性对应于 defaultValue .

    (注意这里有IE gotchas,因为IE不知道属性和属性之间的区别。)

        2
  •  -2
  •   Justin Johnson    15 年前

    您可能期望Firebug显示的值信息与 style 在中更新 HTML 检查窗格。然而, input ,请 select , option textarea 不要以相同的方式操作,此窗格中的值不会更新,并且始终显示原始值(页面呈现时的值)。如果用户界面正在更新,那么你就知道你做得对。

        3
  •  -3
  •   Jonathon Faust    15 年前

    checked = '' ,我相信是正确的。我怀疑当你这么做的时候浏览器是在试图友好 checked = false 做同样的动作, 检查= .