在JavaScript中检查其值时,如何过滤掉空文本框?

时间:2014-02-25 16:52:00

标签: javascript jquery

我有一个网页,可以包含这样的项目列表:

<input type="text" class="stringItems" value="This is my string 1" />
<input type="text" class="stringItems" value="This is my string 2" />
<input type="text" class="stringItems" value="This is my string 3" />
<input type="text" class="stringItems" value="This is my string 4" />
<input type="text" class="stringItems" value="This is my string 5" />
<input type="text" class="stringItems" value="This is my string 6" />

在将数据发送到我的服务器之前,我将它们全部放在这样的数组中:

            $('.stringItems').map(function(i, e) {
                    return e.value; 
               }).toArray());

所以这一切都很有效。

但现在我需要过滤出可能包含空值的<input>元素,如下所示:

<input type="text" class="stringItems" value="" />

基本上,我不希望它们成为数组UNTIL的一部分。

是否有一个jquery方法可以用来过滤掉空值的元素?

3 个答案:

答案 0 :(得分:5)

试试这个:

$('.stringItems').map(function(i, e) {
     if(e.value.trim() != '')
         return e.value; 
}).toArray();

请在演示中查看控制台内的console.log,您可以看到没有空值的数组

DEMO

答案 1 :(得分:1)

您可能想要使用filter()方法:http://api.jquery.com/filter/

e.g。

$('.stringItems').filter(function(i, e) {
  return e.value != '';
}).map(function(i, e) {
  return e.value;
});

答案 2 :(得分:1)

您可以使用选择器完成所有操作,即:

$('.stringItems').not("[value='']").map(function(i, e) {
                    return e.value; 
               }).toArray();