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); }; 
  • Knockout.js observableArray vs Backbone.js Collection - ¿Cuál es la diferencia?
  • ¿Por qué necesitamos "var self = this" en classs en Javascript?
  • ko.subscribe en properties de models hijo
  • Resolver references circulares del object JSON
  • ¿Cómo crear una suscripción observable knockout que se active solo una vez?
  • Knockout-validation no muestra un post de error para seleccionar múltiples
  • Utilice KnockoutJS ViewModel en un file JavaScript externo
  • Ordenar matriz por date arroja resultados inesperados
  • knockoutjs afterRender function en foreach binding
  • button de habilitación cuando todos los campos están llenos
  • KnockoutJS: enlazar una opción de selección a un object
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.