2016-02-13 60 views
1

在输入上为value属性创建新绑定后,当用户手动修改该值时,该值不再发生更改。HTML/Javascript - '<input type = text'交互发生了什么?

绑定更改时会丢失什么?常规用户交互是否使用按键听众?

我改变的setter /吸气有一个元素的文本自动绑定到一个输入的值属性(使用Object.defineProperty(输入,“值”)......

这导致与输入的用户交互因此如果我作为用户在输入中键入'2',那么输入的值仍然是开头的值而不是'2'

因此,重新定义值财产必须打破旧的二传手

+0

可以请你分享的HTML和JS。 – brk

+0

你能澄清你的问题吗?提供一个代码示例等等。很难说出你在做什么以及你究竟在问什么。 – michael

+0

请用您的密码澄清。 – 2016-02-13 04:10:49

回答

1

我似乎无法找到权威的参考,但它通常不可能le/safe以这种方式更新主机对象(基本上是浏览器提供的任何对象,而不是JS本身)。如果你坚持,你可以尝试Object.getOwnPropertyDescriptor看看你是否可以在Object.defineProperty之前得到默认设置者并覆盖它。

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

+0

好酷我不确定是否有办法得到默认的setter。我发现的是,原始的setter以某种方式与'用户输入改变'事件相关联,并导致属性/属性反过来被改变。目前Ive结束的是'change'事件触发,但属性是没有改变,我还没有找到任何改变的参考。这就让我需要像你说的那样加入原始的setter,或者通过按键模拟用户交互。 –

相关问题