我正在尝试使用标签来描述输入字段。我有这样的东西(这段代码在<c:foreach/>
)
<label for="some_input-${someCounter.index}">
The value in the associated input is: ${ $('#some_input-'+${someCounter.index}).val() }
</label>
<input id="some_input-${comeCounter.index}"/>
我在尝试使用jQuery从输入字段获取值时遇到问题。使用根据循环的迭代而改变的.index来设置输入的id的事实给了我一些问题。我将有多个输入,每个输入都有自己的标签。最终这些标签将被隐藏508.这是我需要从输入中获取值的主要原因。
编辑以澄清: 我想使用jQuery选择器从输入字段中获取值,并在动态ID连接到它的标签中显示该值。
感谢。
答案 0 :(得分:1)
要从输入字段中获取值,您可以执行以下操作:
更新了JSP:
<label for="some_input-${someCounter.index}">
The value in the associated input is: ${ $('#some_input-'+${someCounter.index}).val() }
</label>
<input id="some_input-${comeCounter.index}" class="some-class" />
JavaScript示例:
$(".some-class").each(function() {
var $input = $(this);
// Now you can get the value of the input and do with it as you please.
console.log($input.val());
});
澄清后更新:
不,你不能在JSP中完成所有操作,因为你依赖于用户的输入;您需要绑定到change事件以更新该元素。这是一种方法:
<强> JSP:强>
<label for="some_input-${someCounter.index}">
The value in the associated input is: <output></output>
</label>
<input id="some_input-${comeCounter.index}" class="some-class" />
<强> JavaScript的:强>
$(".some-class").on("change propertychange click keyup input paste", function() {
var $input = $(this),
id = $input.prop("id"),
$target = $('label[for="' + id + '"]').find("output") // Get the target element
// Update the target element
$target.text($input.val());
});
这应该可以解决问题。您可以使用任何元素作为目标,它不需要是output
元素。
注意:我已经更新了侦听器以接收多个事件,以便立即检测输入字段上的任何更改(而不是等待输入失焦)。