🕵️ SicherheitslückenHak5: Hackers Just Poisoned the Rust Supply Chain | Threat Wire(01.09.2026 um 14:00 Uhr)
🕵️ SicherheitslückenHak5: Hackers Found a Way Into Humanoid Robots | Threat Wire(04.09.2026 um 15:04 Uhr)
🔧 AI Nachrichten Bits und so #1021 (Passwort für Laufwerk)(31.08.2026 um 22:15 Uhr)
🔧 AI Nachrichten Bits und so #1022 (Wie Weißbier)(06.09.2026 um 20:39 Uhr)
🍏 iOS / Mac OSHue-App 6.0 ist da: das sind die Neuerungen(07.09.2026 um 17:21 Uhr)
🕵️ SicherheitslückenHak5: Hackers Just Poisoned the Rust Supply Chain | Threat Wire(01.09.2026 um 14:00 Uhr)
🕵️ SicherheitslückenHak5: Hackers Found a Way Into Humanoid Robots | Threat Wire(04.09.2026 um 15:04 Uhr)
🔧 AI Nachrichten Bits und so #1021 (Passwort für Laufwerk)(31.08.2026 um 22:15 Uhr)
🔧 AI Nachrichten Bits und so #1022 (Wie Weißbier)(06.09.2026 um 20:39 Uhr)
🍏 iOS / Mac OSHue-App 6.0 ist da: das sind die Neuerungen(07.09.2026 um 17:21 Uhr)

🔧 Programmierung 🕛 kürzlich 9 Min Lesezeit
0

Como funcionam Bindings de Eventos de Formulário no KnockoutJs

↗ Quelle (dev.to)
🗣️ Stimme:
📑 Inhaltsübersicht

Este conteúdo é basicamente uma tradução dos materiais originais. A intenção é adquirir aprendizado sobre o KnockoutJs para Magento 2 e criar conteúdo em português sobre KnockouJs.







Documentação











Bindings



No KnockoutJs, bindings são a maneira de conectar a lógica do ViewModel (os dados e a lógica de negócios) com a View (HTML). Em resumo, é através dos bindings que é realizada a interface de usuário refletir automaticamente as mudanças nos seus dados, sem a necessidade de manipular diretamente o DOM.



Os bindings no KnockoutJs funcionam através do atributo data-bind em elementos HTML. Esse atributo é onde você especifica o binding que deseja usar e os valores associados.






Eventos de Formulário






Click



O binding click adiciona um manipulador de eventos para que a função JavaScript escolhida seja invocada quando o elemento DOM associado for clicado. Isso é mais comumente usado em elementos com tag <button>, <input> e <a>, mas na verdade funciona com qualquer elemento DOM visível. O KnockoutJs fornecerá o valor atual do modelo como o primeiro parâmetro.



Cada vez que for clicado no elemento, isso invocará o método que foi passado na ViewModel, que por sua vez altera o estado da ViewModel, o que faz com que a IU seja atualizada.




CODE
<div>
You've clicked <span data-bind="text: numberOfClicks"></span> times
<button data-bind="click: incrementClickCounter">Click me</button>
</div>

<script type="text/javascript">
ko.applyBindings({
numberOfClicks : ko.observable(0),
incrementClickCounter : function() {
var previousCount = this.numberOfClicks();
this.numberOfClicks(previousCount + 1);
}
});
</script>






Por padrão, o KnockoutJs impedirá que o evento click execute qualquer ação padrão. Isso significa que ao usar o binding click em uma tag <a>, o navegador apenas chamará a função e não navegará até o href do link. A vinculação de clique é normalmente utilizada quando está usando o link como parte de uma UI que manipula a ViewModel, não como um hiperlink normal para outra página da web. Caso seja necessário que a ação de clique padrão continue, basta retornar true na função.






Event



O binding event permite adicionar um manipulador de eventos para um evento especificado para que a função JavaScript escolhida seja invocada quando esse evento for acionado para o elemento DOM associado. Isso pode ser usado para vincular a qualquer evento, como pressionamento de tecla, passagem do mouse ou saída do mouse.




CODE
<div>
<div data-bind="event: { mouseover: enableDetails, mouseout: disableDetails }">
Mouse over me
</div>
<div data-bind="visible: detailsEnabled">
Details
</div>
</div>

<script type="text/javascript">
ko.applyBindings({
detailsEnabled: ko.observable(false),
enableDetails: function() {
this.detailsEnabled(true);
},
disableDetails: function() {
this.detailsEnabled(false);
}
});
</script>









Submit



O binding submit *é uma diretiva de vinculação de envio em um formulário impedirá a ação de envio padrão do navegador para esse formulário, em outras palavras, o navegador chamará a função de manipulador, mas não enviará o formulário ao servidor. A vinculação de *submit é normalmente utilizada quando está sendo usado o formulário como uma interface para a ViewModel, não como um formulário HTML normal. Caso seja necessário que o formulário seja enviado como um formulário HTML normal, basta retornar true do seu manipulador de envio.




CODE
<form data-bind="submit: doSomething">
<button type="submit">Submit</button>
</form>

<script type="text/javascript">
ko.applyBindings({
this.doSomething = function(formElement) {
// ... now do something
}
});
</script>









Enable/Disable



O binding enable faz com que o elemento DOM associado seja habilitado quando seu valor de parâmetro for verdadeiro. O binding disable funciona de forma oposta, fazendo com que o elemento DOM associado seja desabilitado quando seu valor for verdadeiro.




CODE
<p>
<input type='checkbox' data-bind="checked: hasCellphone" />
I have a cellphone
</p>
<p>
Your cellphone number:
<input type='text' data-bind="value: cellphoneNumber, enable: hasCellphone" />
</p>

<script type="text/javascript">
ko.applyBindings({
hasCellphone : ko.observable(false),
cellphoneNumber: ""
});
</script>









Value



O binding value *vincula o valor do elemento DOM associado a uma propriedade na *ViewModel. Isso normalmente é útil com elementos de formulário como <input>, <select> e <textarea>.



Quando o usuário editar o valor no controle de formulário associado, o valor será atualizado na ViewModel. Da mesma forma, quando a ViewModel atualiza o valor, isso atualizará o valor do controle de formulário na tela.




CODE
<p>Login name: <input data-bind="value: userName" /></p>
<p>Password: <input type="password" data-bind="value: userPassword" /></p>

<script type="text/javascript">
ko.applyBindings({
userName: ko.observable(""), // Initially blank
userPassword: ko.observable("abc"), // Prepopulate
});
</script>






O binding value funciona em conjunto com a vinculação de <options> para permitir a leitura e gravação de valores que são objetos JavaScript arbitrários, e não apenas valores de string.






TextInput



O binding textInput vincula um campo (<input> ou <textarea>) a uma propriedade ViewModel, fornecendo atualizações bidirecionais entre a propriedade ViewModel e o valor do elemento. O binding textInput fornece atualizações instantâneas do DOM para todos os tipos de entrada do usuário, incluindo preenchimento automático, arrastar e soltar e eventos da área de transferência.




CODE
<p>Login name: <input data-bind="textInput: userName" /></p>
<p>Password: <input type="password" data-bind="textInput: userPassword" /></p>

ViewModel:
<pre data-bind="text: ko.toJSON($root, null, 2)"></pre>

<script type="text/javascript">
ko.applyBindings({
userName: ko.observable(""), // Initially blank
userPassword: ko.observable("abc"), // Prepopulate
});
</script>






O binding textInput, por padrão, só atualiza seu modelo quando o usuário move o foco para fora da caixa de texto. O binding textInput atualiza seu modelo imediatamente a cada pressionamento de tecla ou outro mecanismo de entrada de texto.






HasFocus



O binding hasFocus vincula o estado de foco de um elemento DOM a uma propriedade ViewModel. É uma ligação bidirecional que ao ser definida a propriedade ViewModel como true ou false, o elemento associado ficará focado ou desfocado.




CODE
<input data-bind="hasFocus: isSelected" />
<button data-bind="click: setIsSelected">Focus programmatically</button>
<span data-bind="visible: isSelected">The textbox has focus</span>

<script type="text/javascript">
ko.applyBindings({
isSelected: ko.observable(false),
setIsSelected: function() { this.isSelected(true) }
});
</script>









Checked



O binding checked vincula um controle de formulário verificável, ou seja, uma caixa de seleção (<input type='checkbox'>) ou um botão de opção (<input type='radio'>) com uma propriedade na ViewModel.




CODE
<p>Check 1 (checked): <input type="checkbox" data-bind="checked: checkYes" /></p>
<p>Check 2 (unchecked): <input type="checkbox" data-bind="checked: checkNo" /></p>

<script type="text/javascript">
ko.applyBindings({
checkYes: ko.observable(true),
checkNo: ko.observable(false)
});
</script>









Options



O binding options controla quais opções devem aparecer em uma lista suspensa (<select>) ou lista de seleção múltipla (<select size='6'>). Esta ligação não pode ser usada com nada além de elementos <select>.



O valor atribuído deve ser um array (ou Observable Array). O elemento <select> exibirá então um item para cada item do seu array.




CODE
<p>
Destination country:
<select data-bind="options: availableCountries"></select>
<input data-bind="value: newCountry"/>
<button data-bind="click: addCountry">Add country</button>
</p>

<script type="text/javascript">
ko.applyBindings({
addCountry: function() {
this.availableCountries.push(this.newCountry());
},
newCountry: ko.observable(),
availableCountries: ko.observableArray(['Argentina', 'Brazil', 'Chile'])
});
</script>









SelectedOptions



O binding selectedOptions controla quais elementos em uma lista de seleção múltipla estão selecionados no momento. Destina-se a ser usado em conjunto com um elemento <select> e a ligação de opções.



Quando o usuário seleciona ou desmarca um item na lista de seleção múltipla, isso adiciona ou remove o valor correspondente a uma matriz na ViewModel. Da mesma forma, supondo que seja um Observable Array na ViewModel, sempre que adicionar ou remover itens desse array, os itens correspondentes na UI serão selecionados ou desmarcados. É uma ligação bidirecional.




CODE
<p>Choose some countries you'd like to visit:</p>
<select data-bind="options: availableCountries, selectedOptions: chosenCountries" size="5" multiple="true"></select>

<script type="text/javascript">
ko.applyBindings({
availableCountries : ko.observableArray(['France', 'Germany', 'Spain']),
chosenCountries : ko.observableArray(['Germany']) // Initially, only Germany is selected
});
</script>









UniqueName



O binding uniqueName garante que o elemento DOM associado tenha um atributo de nome não vazio. Se o elemento DOM não tiver um atributo name, essa ligação fornecerá um e o definirá como algum valor de string exclusivo.




CODE
<input data-bind="value: someModelProperty, uniqueName: true" />


Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
1 Quelle
Hackers Just Poisoned the Rust Supply Chain | Threat Wire
1 Quelle
Hackers Found a Way Into Humanoid Robots | Threat Wire
1 Quelle
Bits und so #1021 (Passwort für Laufwerk)
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Como funcionam Bindings de Eventos de Formulário no KnockoutJs

Thematisch verwandte Begriffe: Como, funcionam, Bindings, Eventos · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...