使用JQuery-struts -ajax加载JSP页面时出现问题

时间:2012-03-28 14:26:54

标签: jsp jquery struts2

嗨我在页面中有一个选择选项标签。我需要根据其他选择框的值更改此选择框的内容。我们正在使用AJAX来做到这一点。

选择应该更改哪个值的标记。

<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>

这是一个加载select option tag新值的ajax调用。

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

这是应该在IndexDiv中加载的JSP页面

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

ajax调用后,indexDiv标签的内容如下。

<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>

所以&#39; indexDiv&#39;应该只包含select选项标签。但它包含表格行。只有在使用JQuery进行ajax调用时才会出现此问题。但是当使用平面javascript时,没有观察到这个问题。

如果这是与struts2相关的问题,那么当我使用非jquery方式进行ajax调用时它也应该出现。

1 个答案:

答案 0 :(得分:1)

啊!不要责怪jQuery。您是否尝试在源JSP页面的顶部使用<s:set name="theme" value="'simple'" scope="page" />。或者,在struts.xml

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