Instantly share code, notes, and snippets.

Embed
What would you like to do?
input handling with virtual or morphing doms
var morphdom = require('morphdom')
var el1 = document.createElement('div')
el1.innerHTML = 'foo'
var el2 = document.createElement('div')
el2.innerHTML = 'bar'
var input1 = document.createElement('input')
var input2 = document.createElement('input')
el1.appendChild(input1)
el2.appendChild(input2)
input1.oninput = function () {
morphdom(el1, el2)  
}
document.body.appendChild(el1)
var vdom = require('virtual-dom')
var hyperx = require('hyperx')
var main = require('main-loop')
var hx = hyperx(vdom.h)
function oninput () {
loop.update({value: 'bar'})
}
var el = function (state) {
return hx`<div>${state.value}<input oninput=${oninput}></div>`
}
var loop = main({value: 'foo'}, render, vdom)
document.body.appendChild(loop.target)
function render (state) {
return el(state)
}
@freeman-lab

This comment has been minimized.

Show comment
Hide comment
@freeman-lab

freeman-lab Mar 2, 2016

if the following is added to morph then the input is preserved after typing

morphdom(el1, el2, {
  onBeforeMorphEl: function (input1, input2) {
    input2.value = input1.value
  }
})  
Owner

freeman-lab commented Mar 2, 2016

if the following is added to morph then the input is preserved after typing

morphdom(el1, el2, {
  onBeforeMorphEl: function (input1, input2) {
    input2.value = input1.value
  }
})  
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment