HTML/Javascript - “<input type=text”交互发生了什么
HTML/Javascript - What is happening with '<input type=text' interactions?
在输入上为 value 属性创建新绑定后,当用户手动修改值时,该值将不再更改。
更改绑定时会丢失什么?常规用户交互是否使用按键侦听器?
我正在更改 setter/getter 以使元素的文本自动绑定到输入的值属性(使用 Object.defineProperty(input,'value')...
这会导致用户与输入的交互不再更改 value 属性。因此,如果我作为用户在输入中键入"2",则输入的值仍将是它开始的值,而不是"2"。
因此,重新定义 value 属性必须打破旧的 setter。
我现在似乎找不到权威参考,但通常不可能/安全地以这种方式更新主机对象(基本上是浏览器提供的任何对象,而不是 JS 本身)。 如果你坚持,你可能会尝试Object.getOwnPropertyDescriptor
看看是否可以在Object.defineProperty
和覆盖它之前获得默认的 setter。
详细信息:http://perfectionkills.com/whats-wrong-with-extending-the-dom/(请参阅"主机对象没有规则")
相关文章:
- 如何将输入(type=text)从html表单传递到javascript函数
- 节点,express应用程序返回text/javascript响应头(Content-Type),尽管设置了applic
- type=text/javascript和language=javascript之间的区别
- 如何将按钮的数据属性设置为输入[type=text]中设置的任何值
- 使用图像而不是文本(script type=“text/javascript”)
- 如何使用 JavaScript 显示 html 输入:.html(' < input type=“text” /
- JavaScript / jQuery input[type=text] pattern
- Jquery selector input[type=text]')
- AngularJS:如何为输入type=text生成动态ng模型
- JavaScript正则表达式中type=number和type=text之间的区别是什么
- 跟踪输入中的更改[type=text]
- 从脚本type="text/template"设置数据属性为jQuery对象
- 在innerHTML中添加p元素后,输入[type="text"]的值不显示
- 不能在元素上创建checkboxradio.nodeName=input, element.type=text
- 在angularJS中根据另一个输入[type=text]值设置输入[type=range]最大值
- 如何在input type="text"与jQuery
- 在运行时将input type=text.outerHTML()替换为新的outerHTML()
- 在Angular中,如何使用input type=text字段来只接受数字、负号和小数,别无其他
- 如何使用jQuery.自动完成隐藏的输入字段(type="text")
- 如何在一个type="text/ng-template"的页面中使用javascript