I am trying to prompt user when he loose focus from text field on press back space but my code hav little bugs it also promp user when he press backspace during typing how its happening i an not sure please help me.

t1.addListener(new TextFieldListenerAdapter() {

       public void onFocus(Field field) {  
     System.out.println("onFocus"); 
       } 
       public void onBlur(Field field) {  
         System.out.println("onBlur");
         call();
            }
    });

    RootPanel.get().add(t1);

        }  

 public native void call()/*-{

 //alert("dfv");

    $wnd.onkeypress = GetChar;

     function GetChar (event)
     {
        var key = event.keyCode;

        if(key==8)//checking keyCode of key for backspace

                {
         var x= window.confirm("Are you sureyou want to leave the page");

        if (x==true)
                 {
              alert(window.history.back())

                  }
           else if(x==false)
         {

          return false;
         }
            }
    }                   

}-*/;

有帮助吗?

解决方案

Try this one

    import com.google.gwt.event.dom.client.KeyCodes;
    import com.google.gwt.i18n.client.DateTimeFormat;
    import com.google.gwt.user.client.Event;
    import com.google.gwt.user.client.Event.NativePreviewEvent;

    ...


    Event.addNativePreviewHandler(new Event.NativePreviewHandler() {

        @Override
        public void onPreviewNativeEvent(final NativePreviewEvent event) {
            if (event.getTypeInt() == Event.ONKEYPRESS) {
                if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_BACKSPACE) {
                    System.out.println("Back space is pressed");
                }
            }
        }
    });

    t1.sinkEvents(Event.ONKEYPRESS);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top