Chapter 5. Working with Forms

Form Data Bindings

Knockout provides several different bindings that work with specific form elements.

  • The value binding is used with input, select, and textarea form inputs.
  • The textInput binding is also used with input and textarea and is quite similar to the value binding. When the textInput is used, the observable updates with every user interaction, as opposed to the value binding, which defaults to updating when the form element changes (typically when the field loses focus). See Example 5-1.
  • The checked binding is used with checkboxes and radio buttons.
  • The options binding is used on the select form input to populate the list of options available in the drop-down list.
  • The selectedOptions binding is also used with the select form input; more specifically when you are using a multiselect list. This is commonly bound to an observable array, as opposed to an observable variable.
  • The enable and disable bindings work with all form inputs to either enable or disable the form element when the condition results to true or false, respectively.

All of these bindings are what Knockout calls two-way bindings. This means that when the form element is changed, your ViewModel property is updated and if you programmatically change the observable, the form element it is binded to will be automatically updated.

Example 5-1. The textInput binding
<!DOCTYPE html>
<html>
<head> 
    <title>Data Binding with KnockoutJS</title>
</head>
<body> 

    <textarea data-bind= ...

Get Knockout.js now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.