2014-03-06 15 views
0

我有一部分窗体“弹出”了它的正常位置,并将其自身绑定到视口的一侧。发生这种情况时,某些元素被隐藏起来,只留下立即关键的数据。只有当文本为空时,才会将文本发送到输入字段中

我的问题是,我似乎无法将复制的数据只存入具有不包含数据的匹配类的单元中。

我相当肯定,问题出在我的JS:

$('.spec-table-quote-button').click(function() { 
    var toCopy = $(this).closest('tr').find('td:eq(1)').text(); 
    var copyInto = $(".part-number-input").val(''); 
    $(copyInto).val(toCopy); 
    $('.add-field').click(); 
}); 

这里有一个小提琴看到所有的作品:http://jsfiddle.net/UjPAk/

任何帮助是极大的赞赏。提前谢谢了!的

var copyInto = $(".part-number-input").val(''); 
$(copyInto).val(toCopy); 

回答

4

更换

var copyInto = $(".part-number-input").val('')

var copyInto = $(".part-number-input").filter(function() { return $(this).val() == '' });

.val('')设置的所有匹配的东西为空字符串值。它不会将匹配列表过滤为其值为空字符串的元素。

+0

哎呀。几乎没有超越JS/jQuery的基础知识。我将不得不研究filter()如何工作。再次感谢! – Todd

+0

根据http://stackoverflow.com/a/1299468/349353,你也可以做一些像'$('。part-number-input [value =“”]')'(而不是过滤器)。 – peterjmag

+0

是的。过滤器方法可以让你更灵活的构成“不包含数据”。例如,您可以检查该值不是空白也不是空白。 –

2

使用

var copyInto = $(".part-number-input"); 
copyInto.val(toCopy); 

,而不是我想的代码是自我解释。

+0

这两组线条是做同样的事情(除了第二个倒空“入”第一)。第一个效率更高。 –

+0

试图在小提琴中,不起作用。重复使用适当的类将数据输入到所有元素的相同问题。感谢您的尝试。 – Todd

0

尝试:

$('.spec-table-quote-button').click(function() { 
    var toCopy = $(this).closest('tr').find('td:eq(1)').text(); 
    $(".part-number-input").val(toCopy); 
    $('.add-field').click(); 
}); 
+0

这将输入数据到单元格中,但不检查以确保单元格先是空的。对于每个添加的字段,任何新发送的值都将被复制到具有匹配类的系列中的每个输入字段中。感谢您的尝试。 – Todd

相关问题