Over a million developers have joined DZone.

Knockout JS Error: Uncaught Error: NoModificationAllowedError

DZone's Guide to

Knockout JS Error: Uncaught Error: NoModificationAllowedError

· Web Dev Zone
Free Resource

Learn how to build modern digital experience apps with Crafter CMS. Download this eBook now. Brought to you in partnership with Crafter Software

While trying to setup some bindings in Knockout I received the following error:

Uncaught Error: NoModificationAllowedError: DOM Exception 7

At first glance this was very odd to me as I have never seen this before.  Because I had made a few binding changes prior to my last refresh, I was not sure what was causing the error. In order to find out which was the culprit started removing one binding at a time until I found which binding was causing the issue.  Below is the binding which was bad, can you detect the issue?


If you don’t see the issue don’t worry, it took me a minute as well.  Below is the same code w/ the issue highlighted


In my carelessness I had used the text binder rather than the value binder.  This is NOT going to work when trying to binding to an input box, which makes perfect sense.  To resolve the issue I simply replaced my binder as below and everything worked correctly.


I understand why this fails but the error it produces is not very clear.  But remember anytime you get a binding error in Knockout make sure you are using the correct binder.

Till next time,

P.S. If you want to learn more about Knockout watch my Pluralsight Course on Knockout JS

P.S.S. If you want to learn how to transition your XAML skills to HTML you can watch my course on Html for the XAML Developer

Crafter is a modern CMS platform for building modern websites and content-rich digital experiences. Download this eBook now. Brought to you in partnership with Crafter Software.


Published at DZone with permission of Derik Whittaker, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}