【问题标题】:html text-input ?no value or text attributehtml 文本输入?没有值或文本属性
【发布时间】:2016-08-18 07:41:08
【问题描述】:

大家好@Stack Overflow,我已经深入搜索无济于事。

背景:我正在使用visual web developer express 2010开发一个web应用程序,并使用Bootstrap for css。

我的网站上有一个文本输入表单控件供用户输入搜索查询。

问题:这个文本输入表单控件有 no 值或文本属性。 即使我正在输入一个明确的值/文本。

Image of textbox and html code

我计划在我的 javascript 上将文本框中的文本更改为列表项的选择。

如果我可以提供任何其他信息或代码,请告诉我,我会更新。

我的理论是 Bootstrap JavaScript 和 Jquery 库正在干扰,但我不知道从哪里开始探索。

【问题讨论】:

    标签: javascript html css asp.net twitter-bootstrap


    【解决方案1】:

    value 是 DOM 节点的内存中 JavaScript 表示的一个属性,它有一个 getter 将检索 input 的当前值和一个 setter 将在屏幕上更新它,但不在计算中页。但是,默认情况下,HTML 属性 value 和 in-memory 参数不会保持同步。也就是说,计算出的 HTML 会跟踪用户输入的内容,但 value JavaScript 属性。您可以继续使用以下内容更新您的输入:

    $(input).val(someListValueOrWhatever)
    

    或者,去 jQuery 化:

    input.value = someListValueOrWhatever
    

    元素会在屏幕上正常更新。 Bootstrap 和 jQuery 不会干扰。

    【讨论】:

    • “值是一个属性”,你必须把它称为property!参考this
    • “属性”和“属性”在大多数程序员的词典中几乎可以互换。我并不真正关心 jQuery 对术语的具体选择,而且大多数也不应该如此。
    • ""Property" 和 "attribute" 实际上是可以互换的" 不是...请参阅伟大的 T.J. 提供的答案。 Crowder, "一个 DOM 元素是一个对象,一个内存中的东西。像 OOP 中的大多数对象一样,它具有属性。它还分别具有在元素上定义的属性的映射(通常是来自浏览器为创建元素而读取的标记)。某些元素的属性从具有相同或相似名称的属性中获取其初始值。” 而且它并不特定于jQuery