А как быть с несколькими полями?
<span class="dynamic">1</span>
<span class="dynamic">2</span>
<span class="dynamic">3</span>
<span class="dynamic">4</span>
<span class="dynamic">5</span>
<script>
var elems = document.getElementsByClassName("dynamic");
for (var i=0; i<elems.length; i++) {
var el = elems[i];
var inputs = el.getElementsByTagName("input"), newInput;
el.addEventListener("click", function() {
if (inputs.length > 0) return;
if (!newInput) {
newInput = document.createElement("input");
newInput.type = "text";
newInput.maxLength = 1;
newInput.setAttribute("size", 1);
newInput.style.width = "12px";
newInput.addEventListener("blur", function() {
el.removeChild(this);
el.innerHTML = this.value ;
}, false)
}
newInput.value = el.innerHTML;
el.innerHTML = "";
el.appendChild(newInput);
newInput.focus();
newInput.select()
}, false);
};
</script>