2013-06-05 88 views
0

我使用輸入元件等的多維組:多維數組元素驗證

<input value="0" name="Base_fare[23][0]" onchange="javascript:basechanged(23,0)" type="text" id="Base_fare[23][0]" class="imputText2"/> 
<input value="0" name="Base_fare[24][0]" onchange="javascript:basechanged(24,0)" type="text" id="Base_fare[24][0]" class="imputText2"/> 
<input value="0" name="Base_fare[25][0]" onchange="javascript:basechanged(25,0)" type="text" id="Base_fare[25][0]" class="imputText2"/> 
<input value="0" name="Base_fare[23][15]" onchange="javascript:basechanged(23,0)" type="text" id="Base_fare[23][15]" class="imputText2"/> 
<input value="0" name="Base_fare[24][15]" onchange="javascript:basechanged(24,0)" type="text" id="Base_fare[24][15]" class="imputText2"/> 
<input value="0" name="Base_fare[25][15]" onchange="javascript:basechanged(25,0)" type="text" id="Base_fare[25][15]" class="imputText2"/> 
<input value="0" name="Base_fare[23][16]" onchange="javascript:basechanged(23,0)" type="text" id="Base_fare[23][16]" class="imputText2"/> 
<input value="0" name="Base_fare[24][16]" onchange="javascript:basechanged(24,0)" type="text" id="Base_fare[24][16]" class="imputText2"/> 
<input value="0" name="Base_fare[25][16]" onchange="javascript:basechanged(25,0)" type="text" id="Base_fare[25][16]" class="imputText2"/> 

我已經通過存儲的值到數組:

var Base_fare = new Array(3); 
Base_fare[23] = new Array(4); 
Base_fare[23][0]=parseFloat(document.getElementById('Base_fare[23][0]').value); 
Base_fare[23][15]=parseFloat(document.getElementById('Base_fare[23][15]').value); 
Base_fare[23][16]=parseFloat(document.getElementById('Base_fare[23][16]').value); 
Base_fare[23][17]=parseFloat(document.getElementById('Base_fare[23][17]').value); 
Base_fare[24] = new Array(4); 
Base_fare[24][0]=parseFloat(document.getElementById('Base_fare[24][0]').value); 
Base_fare[24][15]=parseFloat(document.getElementById('Base_fare[24][15]').value); 
Base_fare[24][16]=parseFloat(document.getElementById('Base_fare[24][16]').value); 
Base_fare[24][17]=parseFloat(document.getElementById('Base_fare[24][17]').value); 

作爲索引是動態用PHP生成for-each循環 所以我必須使用$.each

$.each(Base_fare, function(key, value) { 
    alert(key); 
    }); 

但它沒有返回23 24它返回1,2,3這樣的 我需要驗證這些發現

我想做的事就是這樣

$.each(Base_fare, function(key, value) { 
     $.each(Base_fare[key], function(key2, value2) { 
    alert(key2 + ':' + value2); 
    }); 
    }); 

總和的事情,所以我可以得到各元素的值來操縱它,並驗證字段,但它不工作..

任何人都可以給我任何解決方案或替代解決方案。

+0

是否返回1,2,3或0,1,2,3 ...?如果你提示鍵,它是否會提示值本身,比如'parseFloat(document.getElementById('Base_fare [23] [0]')的逗號列表.value)是什麼? –

+1

使用'alert(key)'? – Bergi

+0

感謝在這個問題上捕捉我的錯誤實際上我提到的是警報(凱);我想要做的是總結這樣的$。每個(Base_fare,function(key,value){} {} + value2); \t}); }); –

回答

0

但它沒有返回23 24它返回1,2,3這樣的

jQuery的each()將遍歷使用for循環到陣列的length陣列上,正是這樣:

// actual jQuery's each() code 
var i = 0, isArray = isArraylike(obj); 
... 
if (isArray) { 
    for (; i < length; i++) { // <------------------------------------ HERE 
     value = callback.call(obj[ i ], i, obj[ i ]); 

     if (value === false) { 
      break; 
     } 
    } 
} else { 
... 

所以沒有辦法開始迭代23和索引,就像你想要的。 您的替代方案是在使用前測試指數:

$.each(Base_fare, function(key, value) { 
    if (value !== undefined) alert(value); 
});