Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 与带/不带value属性的输入元素混淆_Javascript_Html - Fatal编程技术网

Javascript 与带/不带value属性的输入元素混淆

Javascript 与带/不带value属性的输入元素混淆,javascript,html,Javascript,Html,我对HTML并不陌生,但我总是对输入元素感到困惑,下面是一些HTML: <input id="firstTest" /> <input id="secondTest" value="Hello"/> 但是对于第二个测试输入,我做了同样的事情,但是值总是“Hello”,并且我无法在输入字段中键入任何内容 因此,我的问题是: Q1为什么对于firstInput,我没有指定值属性,但值可以根据我键入的内容进行更改 当我在字段中键入某个内容时,实际发生了什么?浏览器如何显示我键

我对HTML并不陌生,但我总是对输入元素感到困惑,下面是一些HTML:

<input id="firstTest" />
<input id="secondTest" value="Hello"/>
但是对于第二个测试输入,我做了同样的事情,但是值总是“Hello”,并且我无法在输入字段中键入任何内容

因此,我的问题是:

Q1为什么对于firstInput,我没有指定值属性,但值可以根据我键入的内容进行更改

当我在字段中键入某个内容时,实际发生了什么?浏览器如何显示我键入的内容? DOM中的输入对象是否自动更新其
属性,然后浏览器在屏幕上显示最新值

Q3如果DOM中的输入对象自动更新其
属性,为什么在具有value属性的第二个输入上无法自动更新其value属性

Q1为什么对于firstInput,我没有指定值属性,但值可以根据我键入的内容进行更改

HTML属性仅用于定义初始值<代码>输入元素有一个Javascript API,其中有一个
属性(您正在console.log中使用)。此
属性不断反映
输入中的内容。如果您想知道value属性中的内容,有两种方法可以找到:

el.getAttribute('value');
或者,使用上述API

el.defaultValue;
当我在字段中键入某个内容时,实际发生了什么?浏览器如何显示我键入的内容?DOM中的输入对象是否自动更新其值属性,然后浏览器在屏幕上显示最新值

这是浏览器内部如何处理的问题。这是一个与web开发人员无关的实现细节。它在该元件的规范中列出

Q3如果DOM中的输入对象自动更新其值属性,为什么具有值属性的第二个输入不能自动更新其值属性

考虑到这里显示的代码,情况不可能是这样。禁用
输入的唯一方法是输入具有
禁用的
只读的
属性,或者某人添加了调用
事件.preventDefault()
向下键
侦听器


如果这不能完全回答您的问题,请留下一条评论,说明尚不清楚或未回答的问题。

“我无法在输入字段中键入任何内容”-我无法复制此行为。你能制作一个可运行的代码段来演示吗?这里看起来都不错:。请在你的问题中创造一个新的答案。我同意,你所描述的行为毫无意义,我无法复制它。肯定还有别的事情,我们显然看不到,因为你没有给我们看
el.defaultValue;