2011-07-21 27 views
0

私はstruts2-jqueryを使用していますが、何かを削除するための確認のためにモーダルダイアログボックスを作成しようとしています。私はidを渡す方法や、アクションを完了するために「OK」を渡す方法を知らない。以下はStruts-jqueryダイアログの確認+リンクID

Struts2の-jqueryのに基づいてダイアログを作成するための私のコードです:

明らか
<sj:dialog 
    id="anchordialogconfirm" 
    buttons="{ 
      'OK':function() {    
       //id of link is needed to c 
       $(this).dialog('close'); 
      }, 
      'Cancel':function() { $(this).dialog('close'); } 
      }" 
    resizable="false" 
    autoOpen="false" 
    modal="true" 
    title="Remove?" 
> 
Are you sure you want to remove it? 
</sj:dialog> 

<sj:a openDialog="anchordialogconfirm" id="71" cssClass="deleteemp">Delete</sj:a> 

私がアンカーへのhrefを=「」置けば、ダイアログではなくモーダル確認を取得よりも、そのリンクを開きますダイアログ。

アンカーのIDを取得するにはどうすればよいですか?私は削除のためのリンクのIDを望んでいるか、そうするために「OK」になるまで少なくともリンクが関与しないようにします。

+0

私は離れSJとちょうど投げるためにあなたをお勧めしたいですプレーンjQueryを使用します。確かに、実際のコードを記述するのはjava-ishではありません(ただ1つのHTMLタグと2つのJS関数呼び出しであっても)。しかし、jQueryをよく知っている人なら、あなたのコードを扱うことができます。あなたがJSによって生成されたコードを処理する必要がないものをデバッグします。 – ThiefMaster

答えて

1

ダイアログに送信されたデータを保持するために、補助変数を使用できます。

あなたはこのような何か入れたいリンクで

<sj:a openDialog="anchordialogconfirm" onclick="aux=%{#attr.obj.id};" href="#">Remove<sj:a> 

をそして、あなたは」あなたのダイアログでその値を待つ:

<sj:dialog 
      id="anchordialogconfirm" 
      buttons="{ 
      'OK':function() { 
      $('#main').load('yourUrl.action?id='+aux); 
      $(this).dialog('close'); 
      }, 
      'Cancel':function() { $(this).dialog('close'); } 
      }" 
      resizable="false" 
      autoOpen="false" 
      modal="true" 
      title="Remove?"/>