This demo shows a grid entry for invoice line items. The grid starts with three empty line items to show the user that multiple entries are allowed, and that the underlined fields are where values can be entered. The "Add a row" link is positioned immediately below the rows so the user knows that more rows can be added as needed.
The demo also sneaks in an example of Robert's custom date and time picker. The nice thing about this date time picker is that when time entry is configured the user can just type the date and then the time. Or the user can pick a date and then add the time.
The demo is built using typescript, jquery and jqueryui. While somewhat out of favor, jqueryui's interactions, specifically sortable, are still top shelf.