これにはいくつか問題があります。Javascriptで未定義の値にアクセスする
ユーザーは自分のフォームのphoto_idという変数に画像をアップロードできます。最初のファイルオブジェクトをphoto_idに入れ、データベースに送信してファイルオブジェクトを作成します。
if (photo_id) {
var file=photo_id[0]
//send to database and set id to new object created
}
ただし、ユーザーがファイルアップロードボタンをクリックしてもファイルを追加しないことがあります。 fileListオブジェクトは作成され、photo_id変数に格納されますが、長さは0で、未定義になります。このシナリオでは
、私はこの実行すると:
if (photo_id) {
var file=photo_id[0]
....
}
を私はしてもファイルリストの長さが0よりも大きいことを確認するためにチェックする必要がありますが、
Cannot read property '0' of undefined
を取得私がこれをするとき:
if (photo_id[0].length >0) {
var file=photo_id[0]
//send to database and set id to new object created
}
ファイルリストが存在する場合
cannot read length of undefined
どのように私は両方のシナリオを確認することができ、それの長さは> 0である:
私はエラーを取得しますか?
「photoImage」をチェックするときは、 'photo_id'をチェックしています。この問題に不可欠な 'photImage'がどこに定義されているのかわからないのですが、エラーメッセージを考えれば、空のリストではなく長さをチェックする必要があります。 –
@DavidHedlund photoImageはタイプミスで、いずれの場合でも、変数をより一貫して聞こえるように名前を変更する必要があります。ありがとう! – lost9123193