2014-02-28 29 views
1

我有對象列表與關鍵值& pair.when我分離那些顯示在一個特定的字段中的每個信息。 我收到類型錯誤data.validation [i] .user未定義 但我已檢查變量已被賦值。沒有在JavaScript值(未定義)

var data = {validation:[ 
{"user":"user may not be empty"}, 
{"date":"Date may not be null"}, 
{"mobile":"passengerMobile may not be empty"}, 
{"mobileSize":"passengerMobile size must be greater than 11"}, 
{"name":"passengerName may not be empty"}, 
{"nameSize":"passengerName size must be between 2 and 30"}, 
]}; 

var size = data.validation.length; 

for(var i =0;i<=size;i++){ 
if(data.validation[i].user){ 
$("#username").html("<p>"+data.validation[i].user+"</p>"); 
    } 
    if($("#mobile").val().length == 0){ 
    $("#mobilesize").html("<p>"+data.validation[i].mobile+"</p>"); 
    } 
    else if($("#mobile").val().length >= 1){ 
    $("#mobilesize").html("<p>"+data.validation[i].mobilesize+"</p>"); 
    } 
    } 

$( 「#移動」)表示輸入字段Id

任何想法都熱烈歡迎

+0

JavaScript數組索引開始從0到長度-1; – xff1874

+0

謝謝@ xff1874.我知道一個。但我已經錯過了那個東西 – user2742540

回答

2

使用僅比這裏旅遊條件較少。因爲它啓動形式0,1,2,......

for(var i =0;i<size;i++) 

你有長度爲6,但去年進行讀取時那麼這應該是

data.validation[5].user 

您正確的代碼應該是:

var size = data.validation.length; 

    for(var i =0;i<size;i++){ 
    if(data.validation[i].user){ 
    $("#username").html("<p>"+data.validation[i].user+"</p>"); 
     } 
     if($("#mobile").val().length == 0){ 
     $("#mobilesize").html("<p>"+data.validation[i].mobile+"</p>"); 
     } 
     else if($("#mobile").val().length >= 1){ 
     $("#mobilesize").html("<p>"+data.validation[i].mobilesize+"</p>"); 
     } 
     } 
+1

啊..我不知道我是如何錯過了這個。很好!我很抱歉,我試圖投票但少聲譽@Siddique Mahsud – user2742540

1

檢查您的陣列結構:

var data = {validation:[ 
{"user":"user may not be empty"}, 
{"date":"Date may not be null"}, 
{"mobile":"passengerMobile may not be empty"}, 
{"mobileSize":"passengerMobile size must be greater than 11"}, 
{"name":"passengerName may not be empty"}, 
{"nameSize":"passengerName size must be between 2 and 30"}, 
]}; 

這就像(僞代碼):

data = object 
data.validation = array 
data.validation[0] = object 
data.validation[0].user = "user may not be empty" 
data.validation[1].user = undefined!! 
data.validation[2].user = undefined!! 
data.validation[3].user = undefined!! 

所以,你必須改變你的結構..

+0

感謝您的信息結構和快速響應。 – user2742540

0

對於一些在驗證值的你沒有「用戶」,因此你越來越不確定。

請使用代碼來避免這樣的問題:

if(typeof data.validation[i].user != "undefined" && data.validation[i].user){ 
    $("#username").html("<p>"+data.validation[i].user+"</p>"); 
}