El problema basicamente es que ese this.id que pasás en las funciones no existe, poruqe se refiere al id del elemento (input) creado
Código HTML:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript"> //<![CDATA[
var icremento =0;
function crear(obj)
{
icremento++;
field = document.getElementById('field');
contenedor = document.createElement('div');
contenedor.id = 'div'+icremento;
field.appendChild(contenedor);
boton = document.createElement('input');
boton.type = 'text';
boton.name = 'text'+'[]';
boton.style.border = "1px solid white";
boton.style.background = "#4F6497";
boton.style.color = "white";
boton.style.font = "x-small Arial";
boton.id = "xxxxxxx_" + icremento;
boton.onfocus = function () {estilo(this.id,'focus')};
boton.onblur = function () {estilo(this.id,'blur')};
//boton.onchange = function () {estilo(this.id,'change')};
boton.onkeypress = function () {estilo(this.id,'keypress')};
contenedor.appendChild(boton);
}
function estilo(a,b){
document.getElementById('evento').innerHTML = a + '-' + b;
}
//]]>
<fieldset id="field" style="overflow: auto; height:70px; border:0px;"></fieldset>
<input type="button" value="Crear caja de texto" onclick="crear(this)" class="botones"><br />
fijate que previo a agregar los eventos definí
boton.id = "xxxxxxx_" + icremento;
el evento onchange, se va a sobreescribir con blur y focus asi no se si se justifica, menos si hay un keypress, pero bueno, ese es otro tema, ahora por lo menos los eventos deberían funcionarte
SAludos