Below is my very own, very first, super-clean, super-sexy CoffeeScript snippet that dynamically appends input fields as the user tabs through the current input field. The source-code is on the left. On the right, you can actually play with it and see it in action!
inputId = 1;
jQuery ->
$("#fields :input").live 'keydown', (e) ->
if isModifierKeyPressed e
return
if e.keyCode == 9 or e.keyCode == 13
e.preventDefault
if isLastActivity($(this).attr 'id')
addAnotherTextInput();
$(this).next().focus();
return false
isModifierKeyPressed = (e) ->
return e.ctrlKey or e.altKey or e.shiftKey
isLastActivity = (inputFieldId) ->
inputNumber =
(Number) inputFieldId.split('activity')[1]
return inputNumber == inputId
addAnotherTextInput = ->
inputId++
$("#fields").append getInputField inputId
getInputField = (inputId) ->
return "<input type='text' id='activity#{inputId}'
class='input-super-large'
placeholder='Type something and then press tab' />"
This article was originally posted at
http://nizarnoorani.com?p=475
Nizar Noorani is an independent software consultant. He provides services in the areas of web applications and systems architecture, analysis, design and development. Although proficient in a variety of technologies, he specializes in the .NET technology. He can be reached at nizar.noorani@gmail.com.