¿Por qué mi función de cambio se llama dos veces cuando uso .focus ()?

TLDR

Mira estoejempl en cromo. Escriba algo y presionetab. ver aparecer un nuevo cuadro escriba algo y presioneenter. vea aparecer dos nuevos cuadros, donde se espera uno.

Introducción
Noté que al usarenter en lugartab para cambiar los campos, mi función de cambio en un campo de entrada se disparó dos veces. Esta página era bastante grande y todavía estaba en desarrollo (léase: muchos otros errores), así que hice un ejemplo mínimo que muestra este comportamiento, y en este caso incluso lo hace en la pestaña. Esto es solo un problema enCrom Por lo que yo puedo decir

Lo que debería hacer
Quiero hacer una nueva entrada después de ingresar algo en el campo de entrada. Este campo debería enfocarse.

Ejemplo

javascript - necesitando jquery

function myOnChange(context,curNum){
      alert('onchange start');
      nextNum = curNum+1;
      $(context.parentNode).append('<input type="text" onchange="return myOnChange(this,'+nextNum+')" id="prefix_'+nextNum+'" >');
      $('#prefix_'+nextNum).focus();
      return false;
}

HTML-part

<div>
    <input type="text" onchange="return myOnChange(this,1);" id="prefix_1">
</div>

el código completo eson pastebin. necesita agregar su ruta a jquery en el script

Un ejemplo de trabajo está aquí en jFiddle

El onchange recibe dos llamadas: elmyOnChangee llama a la función @, realiza la nueva entrada, llama a lafocus(), elmyOnChange vuelve a llamarse, realiza una nueva entrada, el 'interno'myOnChange sale y luego la 'externa'myOnchange salidas.

Supongo que esto se debe a que el cambio de enfoque activa laonchange() ?. Sé que hay alguna diferencia de comportamiento entre los navegadores en esto.

Me gustaría detener el .focus () (que parece ser el problema) para NO llamar alonchange(), asi quemyOnChange() no recibe llamadas dos veces. ¿Alguien sabe cómo?

Respuestas a la pregunta(5)

Su respuesta a la pregunta