我在某些单元格中有一个包含输入元素的表。我无法弄清楚为什么我无法检索用户输入的值。
我的HTML按原样提供:
<table><tr class="addedItem"><td>
<input type="text" class="form-control" placeholder="0" value="0" />
</td></tr></table>
我的jquery选择器是:
$('table > tbody > tr.addedItem > td > input').each(
function(idx,item){
alert($(item).val());
}
);
无法弄清楚为什么这些输入总是检索0(当然,在用户输入之后)。
提前致谢。 这个jsfiddle按预期工作,我需要检查其余代码上的其他内容。 http://jsfiddle.net/pp4Yd/
答案 0 :(得分:1)
没有类addItem的tr。你可以消除它或只是尝试下面的
$('table > tbody > tr.addedItem > td > input').each(
function(){
alert(this.value);
}
);
或者如果您在td中的每个输入都有form-control
,请使用下面的
$('.form-control').each(function(){
alert(this.value);}
);
答案 1 :(得分:0)
您需要使用change()
事件来获取更新后的值:
$('table > tbody > tr.addedItem > td > input').each(function (idx, item) {
$(this).change(function () {
alert(this.value);
});
});
答案 2 :(得分:0)
类tr
没有addedItem
元素。
尝试这样做,
$('table > tbody > tr > td > input').each(function (idx, item) {
$(this).change(function () {
alert(this.value);
});
});
编辑:
您还必须bind
change
事件发送到each
元素。
答案 3 :(得分:0)
通过删除局部视图解决了问题。 当我做了jsfiddle时,我注意到一切都很好,所以部分视图传递的形式是我唯一的“未知”场景。
我认为这些元素超出了jquery的范围,我稍后会发布一个详细的答案。全部谢谢