2016-02-13 62 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,或者通過按鍵模擬用戶交互。 –

相關問題