1

キー値とペアを持つオブジェクトのリストがあります。特定のフィールドに各情報を表示するためにそれらを分離しているとき。type error data.validation[i].user is undefined が発生していますが、変数に値が割り当てられていることを確認しました。

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>");
    }
  }

$("#mobile") は入力フィールド ID を示します

どんなアイデアでも大歓迎です

4

3 に答える 3

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>");
        }
      }
于 2014-02-28T06:13:33.477 に答える
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!!

だからあなたはあなたの構造を変える必要があります..

于 2014-02-28T06:13:44.527 に答える
0

検証の一部の値には「ユーザー」がないため、未定義になります。

このような問題を回避するには、次のコードを使用してください。

if(typeof data.validation[i].user != "undefined" && data.validation[i].user){
    $("#username").html("<p>"+data.validation[i].user+"</p>");
 }
于 2014-02-28T06:14:24.497 に答える