我正在使用Struts2 <s:iterator>
标记将数据添加到jsp页面。基本上是这样的。
<s:iterator value="applicants" var="applicant">
<label>Applicant Name</label>
<s:property value="#applicant.firstName"/>
<s:property value="#applicant.lastName"/>
<button class="btn btn-success">Approve</button>
<s:hidden class="applicantid" value="%{#applicant.id}"/>
</s:iterator>
当我单击approve按钮时,如何将相关的申请者id设置为jquery中的变量?我尝试了closest(),siblings()方法,但不起作用。任何帮助都将不胜感激。
发布于 2015-12-07 17:33:43
您使用的是class
,而不是不存在的cssClass
。一些Struts2标签允许动态属性,因此在其中一些标签上,class
可以工作,在其他更严格的标签上,它会引发解析错误。在Struts标签中总是使用cssClass
和cssStyle
。
也就是说,您的解决方案
$(this).closest('div').find('inputtype="hidden"').val();变量hidden_value =
依赖于由Struts2主题生成的html,如果您更改项目、表单、元素的主题,或者甚至通过升级Struts库,这种情况可能会发生变化。相反,您应该使用适当的选择器,在本例中为类1:
var hidden_value = $(".applicantid").val();
然而,这将适用于具有该类的每个元素。
如果需要将其应用于单个元素(按钮旁边的元素),只需为每个隐藏元素生成唯一的id
并使用id选择器,如下所示:
<s:iterator value="applicants" var="applicant" status="ctr">
...
<s:hidden id="applicantid_%{#ctr.index}"
cssClass="applicantid"
value="%{#applicant.id}"/>
</s:iterator>
和
var hidden_value = $("#applicantid_1").val();
其中,在某个地方检索唯一编号,例如,基于迭代生成的唯一编号也在按钮的id中(如button_1
),用javascript提取并用于挂载隐藏的id (applicantid_1
)。
发布于 2015-12-06 06:23:08
$('.btn').on('click', function(){
var hidden_value = $('.applicantid').val();
console.log(hidden_value);
}
这是使用来自按钮的类btn和它的on click事件将隐藏字段的值分配给hidden_value变量,并使用applicantid类作为选择器。
发布于 2015-12-06 21:25:16
我终于可以用这个来实现了。
var hidden_value = $(this).closest('div').find('input[type="hidden"]').val();
https://stackoverflow.com/questions/34114551
复制相似问题