2012-12-02 56 views
1

我有以下形式:創建一個數組,並跳過空字段

   <input type="text" name="name1" id="names1" class="names" value="" placeholder="1) Name Here . . ."> 
       <input type="text" name="name2" id="names2" class="names" value="" placeholder="2) Name Here . . ."> 
       <input type="text" name="name3" id="names3" class="names" value="" placeholder="3) Name Here . . ."> 
       <input type="text" name="name4" id="names4" class="names" value="" placeholder="4) Name Here . . ."> 

我試圖創建一個數組,當用戶點擊提交按鈕,保存每個名稱:

var values = $('.names').map(function() { return this.value; }).get(); 

它作品,但它也收集我不需要的空白字段。我想我需要一個條件的For語句,但我無法管理它的語法。

感謝

回答

2

試試這個:

var values = $('.names').map(function() { if(this.value.trim() != '') return this.value; }).get(); 

或者:

var result = []; 
var elements = getElementsByClassName('names'); 
for(var i = 0; i < elements.length; i++){ 
    if(elements[i].value.trim() != '') 
      result.push(elements[i].value); 
} 
+0

耶穌。那是記錄響應時間。 +5 –

+0

@ user1341539謝謝:) – karaxuna

0

只需選擇與現實世界中的非空值

var values = $('.names[value!=""]').map(function() { return this.value; }).get(); 

你需要的所有.names存儲nam ES也:

var values = $('.names[value!=""]').map(function() { 
    return {name: this.name,value: this.value}; 
}).get(); 

http://jsfiddle.net/oceog/7ZcbY/

相關問題