单击Struts 2中的按钮弹出窗口

时间:2014-06-19 11:10:38

标签: jquery jsp struts2

我的JSP中有以下代码

function doContractAction(actionUrl) {

        var strActionUrl = actionUrl;
        if(strActionUrl !=null) {
            document.forms[0].action = actionUrl;
            document.forms[0].submit();
            }
        return false;
    }

<div id="content">
    <div id="report">
    <s:form name="openControl" id="myActionForm" theme="simple" action="ShowAlertReports" method="post">
        <div id="accordion">

            <s:iterator id="alertCat" value="alerts" status="status" >

                <h2  style="font-size:1.1em; padding-top:0px;padding-left:1px;padding-bottom:-5px; font-weight:bold;">
                <p align="left"><s:property value="%{key}"/></p>
                </h2>
                <br>
                <div>

                    <table id="${status.index}" class="grid one-em-below constant-left-width" cellspacing="0" d="ad-hoc-reports">
                        <thead class="nosort">
                            <tr>
                                <th scope="col" class="sortAsc" onclick="applySort(this);"><a style="cursor:pointer; color: #0066FF; font-weight:bold;">Alert Name </a></th>
                                <th scope="col" onclick="applySort(this);"><a style="cursor:pointer; color: #0066FF; font-weight:bold;">Customer Name</a></th>
                                <th scope="col" onclick="applySort(this);"><a style="cursor:pointer; color: #0066FF; font-weight:bold;">Date Opened</a></th>
                                <th scope="col">Action</th>

                            </tr>
                        </thead >
                        <tbody style="font-size:12px;">
                            <s:iterator id="alertsubcat" value="%{value}">
                                <tr>
                                    <td>
                                        <s:property value="name"/>
                                    </td>
                                    <td>
                                        <s:property value="customerName"/>
                                    </td>
                                    <td style="font-size:11px;">
                                        <s:if test="%{display=='OK'}">
                                        <input type="button" value='<s:property value="%{display}" />'
                                            onclick='return closeInfoAlert("<s:property value="%{alertsNotificationId}" />");' />
                                        </s:if>

                                        <s:else>
                                            <input type="button" value='<s:property value="%{display}" />' 
                                            onclick='return doContractAction("<s:property value="%{url}" />");' />
                                        </s:else>
                                    </td>

                                </tr>
                            </s:iterator>

                        </tbody>
                    </table>
                    <br>
                </div>
            </s:iterator>
        </div>
    <s:hidden name="description" id="description" value=""/>
    </s:form>
<br>
</div>
</div>

现在<p align="left"><s:property value="%{key}"/></p>可以有值

  1. Alert1,Alert2 Alert3等
  2. 我的要求来自代码

    <s:else>
        <input type="button" value='<s:property value="%{display}" />' 
        onclick='return doContractAction("<s:property value="%{url}" />");' />
    </s:else>
    

    我需要传递值=&#34;%{key} ,这将在函数 doContractAction 中进行检查 我可以检查密钥中的值,如果它等于 Alert1或Alert 2 。 我打开一个弹出窗口

    我如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

你可以使用struts2计数器为循环中的每个元素提供唯一的id,我已经给出了struts2中引用计数器的链接 here

现在为Button<p>提供唯一ID,现在您将获得如下所示的元素

<p id="p-0" align="left"> <input id="input-0" type="button"> 
<p id="p-1" align="left"> <input id="input-1" type="button"> 
...
<p id="p-n" align="left"> <input id="input-n" type="button"> 

现在您可以使用您可以参考的this.id传递按钮的ID here

现在您可以拆分input-id和counstruct p-id。获得p-id后。现在,您可以通过使用获得p的值 getElementById()