2

ドロップダウン リストが 1 つあり、最初のドロップダウン リストから選択した値で別のドロップダウン リストを作成します。

<s:select name="selectedList" list="list" listKey="name" listValue="name"
      onchange="showList(this);return false;"/>

     <s:url id="server_url" action="cls/ListAction"/> 
     <sx:div showLoadingText="false" id="details" href="ListAction" theme="ajax"
         listenTopics="show_server_list" formId="config_frm"><sx:div>

そして ajax jsp を返す:

<s:select name="selectedApplication" 
          list="applications" listKey="name" 
          listValue="name" onchange="javascript:hideFilterSection();"/>  

ここにonchangeメソッドhideFilterSectionがありますが、これは呼び出していません...

したがって、 first と second(ajax) の 2 つのドロップダウンがあり、2 番目のドロップダウン値に基づいて、jsp で何かを非表示にする必要がありますが、2 番目のドロップダウン onchange が呼び出されていません。それを達成する方法を教えてください。

前もって感謝します

4

2 に答える 2

1

古いバグのある組み込み Dojo バージョンの使用を避け、Struts2-jQuery プラグインに移行するか、生の jQuery に移行することをお勧めします。

しかし、あなたの質問には、executeScriptsパラメータがありません。つまりfalse、デフォルトです。

ドキュメントから:

executeScripts : 取得したコンテンツの Javascript コードが実行されます

これはうまくいくはずです:

<sx:div executeScripts = "true"
       showLoadingText = "false" 
                    id = "details" 
                  href = "ListAction" 
                 theme = "ajax"
          listenTopics = "show_server_list" 
                formId = "config_frm" >
</sx:div>  

結果 JSP からメイン JSP で定義された JavaScript 関数にアクセスするには、 (デフォルトは) に設定separateScriptsする必要があることに注意してください。そうしないと、結果 JSP 内で関数を定義する必要があります。falsetruehideFilterSection()

separateScripts : 各タグに固有の個別のスコープでスクリプトを実行します

于 2013-11-13T09:17:03.343 に答える