1

onchangeイベントの後にフォームフィールドを送信させようとしています。

返されるJson値は次のようになります。

{ "data": [ { "name":"p_data1,KEY=1", "value":"2", "error":"no error" } ] } 

このstingに配列を追加して、次のように更新が必要な他のフィールド('total'など)を指定します。

{ "data": [ { "name":"p_data1,KEY=1", "value":"2", "error":"no error", "toUpdate": [ { "name":"p_total_data1" , "value":"999" } ] } ] } 

したがって、toUpdate配列が存在する場合にのみ、updatetotalスクリプトを実行する必要があります。私の問題は、次のようなifステートメントを使用するかどうかです。

if(typeof results.data[0].toUpdate[0].name == 'undefined'){}

また

if(null != results.data[0].toUpdate[0].name){}

また

if(results.data[0].toUpdate[0].name.length){}

すべてエラー「results.data[0].toUpdate [0].nameisundefined」が表示されます。定義されているかどうかをテストするにはどうすればよいですか?

4

2 に答える 2

4

results.data[0].toUpdateそのプロパティにアクセスする前に、の存在を確認する必要があります。

if (results.data[0].toUpdate && results.data[0].toUpdate[0].name){
  // perform the update
}

最初の条件がfalse(または「偽の」値)と評価された場合、&&オペレーターは短絡し、2番目の条件をまったく評価しないため、表示されているエラーを防ぐことができます。

于 2012-06-29T05:06:06.287 に答える
1

resultオブジェクトのすべての要素が存在するかどうかを確認しundefinedます

if(results !='undefined' && results.data!='undefined' && results.data[0]!='undefined' && results.data[0].toUpdate != 'undefined' && results.data[0].toUpdate[0] != 'undefined' && typeof results.data[0].toUpdate[0].name != 'undefined')
{
  //
}
else
{
 //
}
于 2012-06-29T05:11:17.910 に答える