I am making a backspace function, but I only want the event to fire if the input field is empty and I hit backspace again. I don't want it to fire when I hit backspace and the field is empty simultaneously!

You type in the three letters "abc" and then backspace. You want nothing to happen.

You hit backspace a second time and the letter "c" is removed.

You hit backspace a third time and the letter "b" is removed.

Your type the letter "d" and then backspace. You want nothing to happen.

You hit backspace a second time and the letter "d" is removed.

You hit backspace a third time and the letter "a" is removed. Leaving the field empty.

You hit backspace a fourth time. Nothing can happen so nothing does.

In this scenario you could achieve the desired effect by everytime a character a,b,c,d, ... is typed setting a property, of you choice - say ignorebs, of the input element to true. If a backspace is detected and the property is true you ignore the keystroke and set the property to false so next time the backspace will action.