【发布时间】:2019-05-28 20:49:25
【问题描述】:
我正在使用 displayTag 表装饰器来显示我的 JSP 页面。
该页面有一个包含列的表格。其中一列是显示 2 个超链接的操作。 一个是付费的,另一个是接近的。每行将有 5 列操作,是带有超链接的最后一列。
这是JSP中的动作显示代码
<display-el:column property="action" sortable="false" title=" "
class="defaultTextCentered" style="width:6%" sortName="action" />
下面是我的装饰器代码
public String getAction() {
renderPayLink();
}
private void renderPayLink() {
decoratedVal.append("<a href=\"javascript:newPopup('");
decoratedVal.append(getContextPath());
decoratedVal.append("/abc/taxPaymentInternal.html?iSeqNo=");
decoratedVal.append(abc.getISeqNumber());
decoratedVal.append("&iPeriod=");
decoratedVal.append(abc.getIDate());
decoratedVal.append("', 800, 700)\" title=\"Pay\">Pay</a>");
decoratedVal.append(" ");
}
因此,单击链接时将打开一个弹出窗口,让用户输入几个详细信息并提交。虽然此弹出窗口打开,但我仍然可以转到主浏览器并再次单击付款,这会刷新弹出窗口并让我再次重新提交信息。一旦我在浏览器中单击然后打开弹出窗口,我必须通过禁用支付按钮来阻止这种情况发生。我怎样才能做到这一点?
用
代替工资 decoratedVal.append("', 800, 700)\" title=\"Pay\" ");
decoratedVal.append("onclick=\"this.setAttribute(");
decoratedVal.append("\'style\', \'pointer-events:none; cursor:default;\'); this.setAttribute(");
decoratedVal.append("\'href\', \'\')\">Pay</a>");
decoratedVal.append(" ");
从 f12 调试中获取“无法获取未定义或空引用的属性 'setAttribute'”错误。
<a title="Pay" onclick="this.setAttribute('style', 'pointer-events:none; cursor:default;'); this.setAttribute('href', '')" href="javascript:newPopup('/mei/invoicing/launchConfirmPaymentInternal.html?invoiceSeqNo=131946&invoicePeriod=02-11-2017', 800, 700)">Pay</a>
【问题讨论】:
标签: javascript java jsp jstl displaytag