1. ホーム
  2. javascript

[解決済み] Uncaught TypeError: 未定義のプロパティ 'value'を読み取れない

2022-03-07 05:27:02

質問

次のようなエラーが発生する JavaScript コードがあります。

Uncaught TypeError: Cannot read property 'value' of undefined

コード

var i1 = document.getElementById('i1');
var i2 = document.getElementById('i2');
var __i = {'user' : document.getElementsByName("username")[0], 'pass' : document.getElementsByName("password")[0] };
if(  __i.user.value.length >= 1 ) { i1.value = ''; } else { i1.value = 'Acc'; }

if(  __i.pass.value.length >= 1 ) { i2.value = ''; } else { i2.value = 'Pwd'; }

このエラーは何を意味するのでしょうか?

解決方法は?

プロパティキーが'value'の値の1つが未定義であるように思われます。テスト i1 , i2__i は、if文を実行する前に定義しておく。

var i1 = document.getElementById('i1');
var i2 = document.getElementById('i2');
var __i = {'user' : document.getElementsByName("username")[0], 'pass' : document.getElementsByName("password")[0] };
if(i1 && i2 && __i.user && __i.pass)
{
    if(  __i.user.value.length >= 1 ) { i1.value = ''; } else { i1.value = 'Acc'; }

    if(  __i.pass.value.length >= 1 ) { i2.value = ''; } else { i2.value = 'Pwd'; }
}