evento knockout.js que rastrea cada cambio de text dentro de un textbox de input

Soy nuevo en knockout js. Quiero llamar a una function cada vez que un text cambia dentro de un textbox. Investigué abit e implementé keyup, keydown y keypress, pero no funcionaron correctamente. Si alguien puede darme una solución o por favor networkingirigirme a algún documento que sea útil para mi caso. Y si hay algún tipo de documentation sobre todos los events (incorporados y personalizados) que están disponibles en Js knockout, eso sería realmente útil.

Para ser específico sobre el problema:

data-bind="value: targetProp, event:{keyup: $parent.changeProp}" 

Y en Js:

  Inside parent: this.changeProp = function () { if (condition..) { do something... } } 

No funciona con la tecla arriba. Para una solución simple, por favor deme algo que alertará la longitud de la cadena que se ha escrito dentro de un textbox (en cada text ingresado y eliminado). Gracias por adelantado.

4 Solutions collect form web for “evento knockout.js que rastrea cada cambio de text dentro de un textbox de input”

También puede suscribirse a los cambios de forma manual.

Asegúrese de que targetProp sea observable, y cuando construya el elemento primario, suscríbase manualmente a los cambios:

 parent.targetProp = ko.observable(originalValue); parent.targetProp.subscribe(function(newValue) { alert("The new value is " + newValue); }); 

Editar: para una opción binding:

 <select data-bind="options: myObservableArray, value: selectedValue"></select> 

en js:

 self.selectedValue = ko.observable(); 

entonces:

 self.selectedValue.subscribe(function(newValue) { alert("The new value is " + newValue); }); 

Puede usar valueUpdate: 'afterkeydown' que actualiza su model de vista tan pronto como el usuario comienza a escribir un caracter.

 data-bind="value: targetProp, valueUpdate: 'afterkeydown'" 

O puede usar el enlace textInput desde el último KO 3.2

<input data-bind="textInput: userName" />

Además de las actualizaciones en vivo, maneja correctamente cortar / pegar, arrastrar, autocomplete.

Si desea calcular en time real, a medida que la persona escribe, puede hacerlo.

HTML

 <input type="text" id="description" class="form-control" maxlength="255" data-bind="value:description, event:{keyup:calcDescriptionCount}"> <br> <span data-bind="text:descriptionCount"></span> charactors left. 

ViewModel JS

 self.description = ko.observable(""); self.descriptionCount = ko.observable(255); self.calcDescriptionCount = function(){ this.descriptionCount(255 - $("#description").val().length); }; 
  • knockoutjs cuando se verifica la function de llamada de data binding
  • KnockoutJS - Agregar valores computados a una matriz observable
  • Múltiples componentes knockout en la misma vista
  • ¿Cómo actualizar el elemento de matriz observable en knockoutjs?
  • KnockoutJS suscribirse a múltiples observables con la misma acción de callback
  • Utilice KnockoutJS ViewModel en un file JavaScript externo
  • Knockout.js: las tags child no funcionan cuando el elemento padre li tiene enlace de clic
  • Pérdida de memory con enlace observable Array y foreach
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.