0

我正在尝试将 jQuery 与 JSP 一起使用来显示一个表格,其中每一行都有三个可能的操作:向上、向下、刷新。我想为每个甚至彼此相邻显示一个图像,并且能够单击每行中的按钮以执行我的 Java 代码中定义的请求操作(向上/向下/刷新)。因此,每个按钮和每一行都会执行不同的操作/功能。例如:第 1 行操作将是:modelUp、modelDown、modelRefresh;第 2 行的操作是:productionUp、productionDown、productionRefresh;... ETC。

问题是我不了解 jQuery,并且几乎没有使用 JSP 的经验。我一直在谷歌,但它并没有让我走得很远。

有人可以帮我吗?谢谢。

4

2 回答 2

1

基本上,您通过使用将一个动作附加到 jQuery 中的 CSS 选择器

$('.classname').bind('click', function() {
  // do something
});

每当单击具有类的内容时,这将执行代码.classname

在您的情况下,您将有 3 个类,每种按钮一个。如何指定自定义行为是您的选择。您可以将一些自定义属性附加到每一行的每个 DOM 元素,以便在 click 函数中您能够区分它们并相应地执行不同的操作。

请注意,这是一个很好的设计,前提是您可以使用此属性而不会因为长长的 if/else 链而使您的点击功能变得混乱,否则您最好将许多不同的操作绑定到每个按钮。由于您使用的是 JSP,因此您可以在为客户端生成结果 HTML 时动态生成 JS 代码。

于 2012-05-31T15:19:04.973 回答
0

好的,我几乎通过这种方式解决了大部分问题。

这是我的 JSP(这只是表格的一行,但其余的遵循相同的方案):'code

<form id="checkStatusForm" action="<%= model.getUri() %>" method="post" >
<input type="hidden" name="<%=FrameworkConstants.FRAMEWORK_COMMAND%>" value="checkstatus" />
<input type="hidden" name="<%=FrameworkConstants.FRAMEWORK_GUID%>" value="<%=model.getPageId()%>" />
<input type="hidden" name="regionID" id="regionID" value="" />
<input type="hidden" name="regionAction" id="regionAction" value="" />

<img src="<%=request.getContextPath() %>/images/up.jpg" alt="" name="modelUp" width="20" height="20" id="modelUp" onclick="CheckStatus.performRegionAction('model', 'up')" />
<img src="<%=request.getContextPath() %>/images/down.jpg" alt="" name="modelDown" width="20" height="20" id="modelDown" onclick="CheckStatus.performRegionAction('model', 'down')" />
<img src="<%=request.getContextPath() %>/images/refresh.png" alt="" name="modelRefresh" width="20" height="20" id="modelRefresh" onclick="CheckStatus.performRegionAction('model', 'refresh')" />

<button type="submit" style="margin-left: 2px; margin-top: 5px; margin-bottom: 0px;" >Commit Changes</button>
</form>

'

这是我的 jQuery/Javascript:'代码

 performRegionAction : function(regionID, regionAction){
        document.getElementById('regionID').value = regionID;
        document.getElementById('regionAction').value = regionAction;
    },'

最后是我的 Java:'

public void setRegionID(Field<String> regionID){
        this.regionID = regionID;
    }

    public Field<String> getRegionID(){
        return this.regionID;
    }

    public void setRegionAction(Field<String> regionAction){
        this.regionAction = regionAction;
    }

    public Field<String> getRegionAction(){
        return this.regionAction;
    }

'

于 2012-06-01T13:14:04.553 回答