2010-12-27 14 views
0

からホストページでボタンをクリック:動作しない以下のはなぜ私はそうのような入力ボタンでGWTアプリケーションのためのシンプルなホストページ持ってGWT

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

を:

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

場合私はブレークポイントを置くSave要素が正しく割り当てられているが、Clickは決して動かないように見える。そのボタンのonclickハンドラは決して実行されません。ボタンを手動でクリックしてもうまく動作しますが、ボタンのフォームは決して投稿されません。

EDIT: 私はすでに定義されたonclickのを持っている、と私は述べたように、私は手動で送信ボタンをクリックすると、そのonclickのが正しく呼び出されていることに注意してください。私は単にGWTから送信ボタンをクリックして同じことが起こるようにしたい(onclickまたはform post)。

SOLUTION:

は私がモーダルポップアップパネルを使用していた、とモーダルポップアップがアクティブである間はクリックイベントが登録されていないです、このエラーを取得した理由のように見えます。このボタンをクリックハンドラを追加したい場合は、あなたがボタン入力しないと、それを定義する必要があり :クリック方法が...

編集と呼ばれてきたとき

答えて

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

まあ、onclickの実行されました。

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

さらに、以下のコードでクリックハンドラを追加できます。

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

私は既にボタン上で(JavaScriptを介して)定義されたクリックハンドラを持っています。ボタンをプログラムでクリックするだけです。プログラムによって、私はこのボタンのクリックボタンを呼び出した。 –

+0

私は別のボタンを置いて、私は他のボタンのonclickメソッドでこのボタンのクリックメソッドを呼び出しました。 –

+0

ありがとう、私がやっているテストでいくつかの奇妙な問題があったように見えます。私は新しいプロジェクトで同じことを試してみました。 –

1

フォローコードが正常に機能しています。おそらく、onclick="{SUBMIT_SCRIPT}";

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

のようなフォームを提出することがあります。

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

スケジューラの例;

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

onclickが定義されていて、マウスでボタンをクリックすると完全に実行されます。 'save.click()'は動作していないもので、onclickが呼び出されていないか、フォームがポストされていません。 –

+0

)私の例のjavascriptアラートが表示されているのは、save.clickが動作するということです。また、スケジューラを試してみてください。 –

+0

ありがとう、私がやっていたテストで奇妙な問題があったようです。私は新しいプロジェクトで同じことを試してみました。 –

0

は、私はモーダルポップアップパネルを使用していたので、それが働いていなかった理由は判明します。モーダルポップアップパネルがアクティブなときにクリックイベントは登録されません(後で知る限り)。

関連する問題