2012-03-28 13 views
0

Hallo Ich habe eine Auswahl Option Tag in der Seite. Ich muss den Inhalt dieser Auswahlbox abhängig vom Wert der anderen Auswahlbox ändern. Wir verwenden AJAX, um dies zu tun.Problem beim Laden von JSP-Seite mit JQuery-Struts-Ajax

Wählen Sie das Tag aus, dessen Wert geändert werden soll.

<tr> 
    <td width="45%" align="right"> 
     <font class="formLabelFont1"><s:text name="tempName"/>: </font> 
    </td>    
    <td align="left"> 
     <div id="indexDiv"> 
      <s:select name="vo.indexId" 
         id="vo.indexId" 
         list="indexList" 
         listKey="id" 
         listValue="name" 
         size="1" 
         required="true" 
         onchange="someFunction();"/> 
     </div> 
    </td> 
    <td align="left"><font class="errorMessageFont"></font></td> 
</tr> 

Dies ist ein Ajax-Aufruf, um den neuen Wert des ausgewählten Options-Tags zu laden.

$("#indexDiv").load(url, "key="+value, function(){ 
     someOtherFunction(); 
    }); 

Dies ist die JSP-Seite, die

<s:select name="vo.indexId" 
    id="vo.indexId" list="indexList" listKey="id" listValue="name" size="1" 
    required="true" onchange="someFunction();" /> 

Nachdem Ajax-Aufruf den Inhalt indexDiv Tag in IndexDiv erhalten geladen soll wie folgt.

<tr> 
    <td width="45%" align="right"> 
     <font class="formLabelFont1">Index : </font> 
    </td>    
    <td align="left"> 
     <div id="indexDiv"> 
      <tr> 
       <td class="tdLabel"></td> 
       <td> 
        <select name="vo.indexId" size="1" id="vo.indexId" onchange="someFunction();"> 
         <option value="1">someValue1</option> 
         <option value="2">someValue2</option> 
        </select> 
       </td> 
      </tr> 
     </div> 
     </td> 
      <td align="left"><font class="errorMessageFont"></font> 
     </td> 
</tr> 

So 'indexDiv' sollte nur wählen Sie die Option-Tag enthalten. Aber es enthält stattdessen eine Tabellenzeile. Dieses Problem tritt nur auf, wenn JQuery zum Ausführen eines AJAX-Aufrufs verwendet wird. Aber wenn Javascript verwendet wird, wird dieses Problem nicht beachtet.

Wenn dieses Problem mit Struts2 zusammenhängt, dann sollte es auch erscheinen, wenn ich nicht-jquery-Weg verwendet habe, um einen Ajax-Aufruf zu machen.

Antwort

1

Ah! gib jQuery nicht die Schuld. Haben Sie versucht, <s:set name="theme" value="'simple'" scope="page" /> oben auf der Quell-JSP-Seite zu verwenden. Oder, in struts.xml:

<struts> 
    <constant name="struts.ui.theme" value="simple" /> 
</struts> 
+0

Mutter von GOTT. Ich habe den ganzen Tag gesucht und so etwas nicht gefunden. Ich muss meine Googling-Fähigkeiten verbessern: P AWESOME. – JProgrammer

+0

auch ich habe diesen Trick nur von stackoverflow gelernt! Google hat damals nicht geholfen. Danke trotzdem. – tusar

Verwandte Themen