无法从输入文本中检索值(使用部分视图添加)

时间:2014-03-13 07:05:05

标签: jquery jquery-selectors

我在某些单元格中有一个包含输入元素的表。我无法弄清楚为什么我无法检索用户输入的值。

我的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/

4 个答案:

答案 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的范围,我稍后会发布一个详细的答案。全部谢谢