javascript - HTML/Javascript - '<input type=text' 交互发生了什么?

标签 javascript html

为输入上的 value 属性创建新绑定(bind)后,当用户手动修改该值时,该值不再更改。

绑定(bind)更改后会丢失什么?常规用户交互是否使用按键监听器?

我正在更改 setter/getter 以使元素的文本自动绑定(bind)到输入的 value 属性(使用 Object.defineProperty(input,'value')...

这导致用户与输入的交互不再更改 value 属性。因此,如果我作为用户在输入中键入“2”,则输入的值仍将是其开始时的值,而不是“2”。

因此重新定义 value 属性肯定会破坏旧的 setter。

最佳答案

我现在似乎找不到权威的引用资料,但以这种方式更新主机对象(基本上是浏览器提供的任何对象,而不是 JS 本身)通常是不可能/安全的。如果您坚持,您可以尝试 Object.getOwnPropertyDescriptor 看看是否可以在 Object.defineProperty 之前获取默认 setter 并覆盖它。

更多信息:http://perfectionkills.com/whats-wrong-with-extending-the-dom/ (特别参见“宿主对象没有规则”)

关于javascript - HTML/Javascript - '<input type=text' 交互发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35375959/

相关文章:

javascript - 如何检查多个值以及 if 语句中匹配的值?

javascript - x >= JavaScript 中的 x 模式

Javascript 变量似乎是静态的

javascript - 如何在mootools中同时执行多个动画?

html - 更新的谷歌浏览器改变了绝对定位 XHTML 1.0

javascript - await function() 不会等待函数完成,因此返回结果为未定义

Outlook 2013 中的 HTML 对齐关闭

javascript - 为什么我的功能中的警报不起作用?

html - 如何使以下 html 代码适合所有分辨率?

c# - 如何自动调整 div 元素的大小以使内容适合