获取jquery变量的隐藏输入值

时间:2015-12-06 06:00:36

标签: javascript jquery struts2 jquery-selectors ognl

我使用struts 2 <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>

当我点击批准按钮时,如何在jquery中获取相关的申请人ID到变量?我尝试了nearest(),siblings()方法,但它没有工作。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

您使用的是不存在的class而不是cssClass。一些Struts2标签允许动态属性,因此在其中一些标记上,class会起作用,而在其他标准上更严格,它会引发一个解析错误。始终在Struts标记中使用cssClasscssStyle

那说,你的解决方案

var hidden_value = $(this).closest('div').find('input[type="hidden"]').val();

依赖于Struts2主题生成的html,如果更改项目,表单,元素或甚至升级Struts库的主题,可能会更改。您应该使用适当的选择器,在本例中为第一类:

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)。

答案 1 :(得分:0)

$('.btn').on('click', function(){
    var hidden_value = $('.applicantid').val();
    console.log(hidden_value);
}

这是使用按钮中的类btn和它的on click事件,使用applicantid类作为选择器,将隐藏字段的值赋给hidden_​​value变量。

答案 2 :(得分:0)

我终于能够使用这个

来做到这一点
var hidden_value = $(this).closest('div').find('input[type="hidden"]').val();