Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Knockout JS Error: Uncaught Error: NoModificationAllowedError

DZone's Guide to

Knockout JS Error: Uncaught Error: NoModificationAllowedError

· Web Dev Zone ·
Free Resource

Learn how Crafter’s Git-based content management system is reinventing modern digital experiences. Download this white paper now. 

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?

image

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

image

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.

image

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 CMS is a modern Git-based platform for building innovative websites and content-rich digital experiences. Download this white paper now.

Topics:

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}