Page 1 of 1

Fire Event on Second Attempt

Posted: Mon Jun 13, 2011 3:09 pm
by unemployment
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!

If I type in... j then hit backspace, my event will fire.

I want to type in... j then hit backspace, don't fire the event, hit backspace again, fire the event
function backspace_delete(e) 
{
	if (!e) 
	{ 
		// IE reports window.event instead of the argument
		e = window.event;
	}
	var keycode;
	
	if (document.all) 
	{
		// IE
		keycode = e.keyCode;
	} 
	else 
	{
		// Not IE
		keycode = e.which;
	}
	
	if (keycode == 8 && with_field.value == '')
	 {
		if (document.all)
		{
			//IE
			removeElementById(with_input.lastChild.id);
		} 
		else 
		{
			//Non IE
			removeElementById(with_input.lastChild.id);
		}
	}
}

Re: Fire Event on Second Attempt

Posted: Mon Jun 13, 2011 3:49 pm
by unemployment
I solved this. I need to fire the event onkeypress and not onkeyup to get my desired result.

Re: Fire Event on Second Attempt

Posted: Mon Jun 13, 2011 7:21 pm
by jacek
Am I blind or are the two things in each of these blocks the same :?
                if (document.all)
                {
                        //IE
                        removeElementById(with_input.lastChild.id);
                }
                else
                {
                        //Non IE
                        removeElementById(with_input.lastChild.id);
                }

Re: Fire Event on Second Attempt

Posted: Mon Jun 13, 2011 7:45 pm
by unemployment
jacek wrote:Am I blind or are the two things in each of these blocks the same :?
                if (document.all)
                {
                        //IE
                        removeElementById(with_input.lastChild.id);
                }
                else
                {
                        //Non IE
                        removeElementById(with_input.lastChild.id);
                }
Well I found an example code online that said I need to use that for cross browse compatibility. In actuality... this function fails in chrome. Any thoughts as to why?

Re: Fire Event on Second Attempt

Posted: Mon Jun 13, 2011 8:28 pm
by jacek
What does the code for the function removeElementById look like ?

Re: Fire Event on Second Attempt

Posted: Tue Jun 14, 2011 1:14 pm
by unemployment
jacek wrote:What does the code for the function removeElementById look like ?
function removeElementById(id) {
  var element = document.getElementById(id);
  element.parentNode.removeChild(element);
}

Re: Fire Event on Second Attempt

Posted: Tue Jun 14, 2011 1:23 pm
by jacek
Well that should work, does the chrome JS debugger have anything to say about why it does not work ?

Re: Fire Event on Second Attempt

Posted: Tue Jun 14, 2011 1:30 pm
by unemployment
jacek wrote:Well that should work, does the chrome JS debugger have anything to say about why it does not work ?
I solved it. It just didn't work because Chrome, IE, Safari don't support onkeypress.... I needed to use onkeydown.