【发布时间】:2012-03-13 05:22:33
【问题描述】:
我正在使用 Spring MVC 框架开发一个项目,目前我一直在研究如何禁用从 for each 循环中生成的提交按钮(用小程序编写)。我知道 scriptlet 被认为是不好的做法,但我正在培训的公司似乎并不在意......
无论如何,这是我的 for 循环:
<%for(Aj aj : ajList) {%>
Job Name: <%=jobDao.getById(aj.getJobId()).getTitle() %><br/>
Current Status: <%=statusDao.getById(aj.getStatusId()).getStatusName() %><br/>
<input id="notQualified[<%=aj.getStatusId()%>]" class="notQualified[<%=aj.getStatusId()%>]" name="notQualified[<%=aj.getJobId() %>]" value="Not Qualified" type="submit" />
<input id="qualified[<%=aj.getStatusId()%>]" class="qualified[<%=aj.getStatusId()%>]" name="qualified[<%=aj.getJobId() %>]" value="Make Qualified" type="submit" />
<input id="interview[<%=aj.getStatusId()%>]" class="interview[<%=aj.getStatusId()%>]" name="interview[<%=aj.getJobId() %>]" value="Interview" type="submit" />
<input id="hire[<%=aj.getStatusId()%>]" class="hire[<%=aj.getStatusId()%>]" name="hire[<%=aj.getJobId() %>]" value="Hire" type="submit" /><br/><br/>
<%}%>
这是迄今为止我编写的 jquery:
$(function() {
$('.notQualified[<%=1%>]').attr('disabled', 'disabled');
$('.interview[<%=1%>]').attr('disabled', 'disabled');
$('.hire[<%=1%>]').attr('disabled', 'disabled');
$('.qualified[<%=2%>]').attr('disabled', 'disabled');
$('.interview[<%=2%>]').attr('disabled', 'disabled');
$('.notQualified[<%=3%>]').attr('disabled', 'disabled');
$('.qualified[<%=3%>]').attr('disabled', 'disabled');
$('.interview[<%=3%>]').attr('disabled', 'disabled');
$('.hire[<%=3%>]').attr('disabled', 'disabled');
$('.qualified[<%=4%>]').attr('disabled', 'disabled');
$('.hire[<%=4%>]').attr('disabled', 'disabled');
});
所以,如果不清楚,我正在处理 4 种不同的状态。如果被迭代的“aj”(数据库中将用户与他们申请的工作和该用户的工作状态连接起来的表)对应于第一个状态,则禁用“不合格”、“面试”和“雇用”按钮。等等。我将不胜感激。
【问题讨论】:
-
真正的问题是什么?你没有提到你提到的四种不同状态的变量吗?当常量可以直接作为
1包含时,服务器端代码<%=1%>毫无意义,但大概就是您要检查这些状态值的地方?另外,为什么要分配名称与 id 相同的类? -
我在玩这个,所以有点乱。我尝试在我的 jquery 中使用实际的数字 1(即:'.notQualified[1]'),但这没有用。至于与类同名的id,那是因为我已经从使用jquery中的id切换到使用类,我忘记删除“[] " 从每个 ID 的末尾开始。我的问题是没有一个按钮被禁用,因为它们应该是。我可以让第一组按钮被禁用或根本没有......
-
尝试使用 \\ 来转义那些 [ ]。检查stackoverflow.com/a/9402472/297641 - 这正是您所需要的。
-
不要从 id 的末尾删除
[<%=aj.getStatusId()%>]。 ID 在页面上必须是唯一的,但显然如果您删除编号,您将拥有重复的 ID。 Id 用于识别独特的事物,class 用于识别事物组。 (尽管由于我个人对 id 样式的偏好,我会删除方括号。)使用实际数字1将得到与<%=1%>完全相同的结果(使用浏览器中的查看源代码进行比较)。跨度> -
@nnnnnn 感谢您的帮助 - 我从我的课程中删除了方括号(并将它们留在了 ids 中),现在它就像一个魅力。
标签: jquery jsp spring-mvc foreach scriptlet