2010-12-27 5 views
0

Anklicken habe ich eine einfache Host-Seite für ein GWT-App mit einem Eingabeknopf etwa so: Wenneine Schaltfläche in Host-Seite von GWT

InputElement save = InputElement.as(RootPanel.get("Save").getElement()); 
save.click(); 

:

<input id="Save" class="button" type="submit" name="Button" value="Save" /> 

Warum nicht funktioniert Folgende Arbeiten Ich habe einen Haltepunkt gesetzt Ich kann sehen, dass das Element Speichern korrekt zugewiesen wurde, aber klicken nie funktioniert. Jeder onclick-Handler für diese Schaltfläche wird nie ausgeführt, und das Formular, in dem sich die Schaltfläche befindet, wird nie veröffentlicht, obwohl, wenn ich auf die Schaltfläche manuell klicke, es gut funktioniert.

EDIT: Bitte beachten Sie, dass ich bereits ein Onclick definiert, und als ich das Onclick erwähnt wird korrekt aufgerufen wird, wenn ich manuell den Absenden-Button klicken. Ich möchte einfach den Absenden-Button von GWT "klicken" und das Gleiche passieren lassen (onclick oder form post).

LÖSUNG:

Sieht aus wie der Grund, warum ich diesen Fehler war immer, das ich ein modales Popup-Panel wurde mit und keine Click-Ereignisse registriert werden, während ein modales Popup aktiv ist.

Antwort

1
<input id="Save" class="button" type="submit" name="Button" value="Save" onclick="alert('test')"/> 

Nun hat Onclick ausgeführt worden, als Klick-Methode aufgerufen wurde ...

Edit: Wenn Sie Click-Handler auf diese Schaltfläche hinzufügen möchten, dann sollten Sie definieren es als Schaltfläche nicht eingegeben. .

<button id="save" class="button" type="button" name="save" /> 

Und Sie können Click-Handler wie unten Code hinzufügen;

ButtonElement save = ButtonElement.as(RootPanel.get("save").getElement()); 
    final Button bt = Button.wrap(save); 
    bt.setText("save"); 
    bt.addClickHandler(new ClickHandler(){ 
     public void onClick(ClickEvent event) { 
      bt.setEnabled(false); 

      } 
    }); 
+0

Ich habe bereits einen Click-Handler (über Javascript) auf der Schaltfläche definiert. Ich möchte nur programmgesteuert auf den Button klicken. –

+0

programmgesteuert habe ich Click-Taste dieser Schaltfläche aufgerufen. Ich habe eine andere Taste, und ich habe diese Schaltfläche Click-Methode bei onclick Methode der anderen Schaltfläche aufgerufen. –

+0

Danke, sieht aus wie ich hatte ein seltsames Problem mit dem Test, den ich tat. Ich habe das Gleiche in einem neuen Projekt versucht und es hat funktioniert. –

1

Folgender Code funktioniert einwandfrei. Wahrscheinlich können Sie Ihre Form wie onclick="{SUBMIT_SCRIPT}";

<input id="Save" class="button" type="submit" onclick="alert('Hello');" name="Button" value="Save" /> 

einreichen.

InputElement save = InputElement.as(RootPanel.get("Save").getElement()); 
save.click(); 

Planer Beispiel;

InputElement save = InputElement.as(RootPanel.get("Save").getElement()); 
Scheduler.get().scheduleDeferred(new ScheduledCommand() { 
    @Override 
    public void execute() { 
     save.click(); 
    } 
}); 
+0

Ich habe einen onclick definiert, und es funktioniert perfekt, wenn ich auf den Knopf mit meiner Maus klicke. Der 'save.click()' funktioniert nicht, weder der Onclick wird aufgerufen, noch wird das Formular gepostet. –

+0

I) n mein Beispiel JavaScript-Alarm wird angezeigt, dies bedeutet save.click funktioniert. Alternativ können Sie Scheduler versuchen, vielleicht funktioniert es für Sie. –

+0

Danke, es sieht so aus, als hätte ich ein seltsames Problem mit dem Test, den ich gemacht habe.Ich habe das Gleiche in einem neuen Projekt versucht und es hat funktioniert. –

0

stellte sich heraus, der Grund, warum es nicht funktioniert, weil ich eine modale Popup-Panel wurde mit. Es werden keine Klickereignisse registriert, wenn das modale Popup-Fenster aktiv ist (im nachhinein sehr sinnvoll).