关于重置文本区域的最新评论。
在运行 Windows 10 家庭版的 PC 上使用 Chrome 版本 54.0.2840.99 m,我发现由常规/未修改的重置按钮或 form.reset() 语句调用的本机/内置重置功能确实恢复了初始textarea 的字段值,但前提是之前没有以编程方式清除 textarea,例如使用清空 textarea 的 innerHTML 的自定义清除按钮。
当 textarea 首次加载时没有默认值时,这是无法观察到的,但如果 textarea 被编码为显示表单先前发布的数据,则 textarea 可能不为空,并且重置 textarea 应将字段设置为加载表单时的值。
我发现当 textarea 的 innerHTML 被清空时,本机重置使用的 textarea 的 defaultValue 属性被错误地清除,然后随后的重置只是清除了 textarea,而不是按预期重置 textarea。我认为这是一个错误,因为与清除和重置其他文本输入字段相比,textarea 的工作方式不同。
可以通过将自定义 initialValue 属性添加到 textarea 并将 innerHTML 值分配给它来解决这种“奇怪的人”行为。由于本机重置和自定义清除功能不会影响自定义属性,因此该值被保留,并可用于通过覆盖重置按钮调用将 textarea 的 innerHTML 设置为 initialValue 属性值的函数来恢复 textarea 的值和然后调用 form.reset() 函数来处理其他输入字段。请注意,调用 form.reset() 函数会导致修改后的重置按钮调用的自定义重置函数在 form.reset() 之后不执行任何代码。