2013-10-11 2 views
0

Я делаю цикл в своих вводах формы HTML, чтобы проверить его значения. Я делаю это на каждой странице, через которую я получаю доступ через chrome-extension. На некоторых страницах работает очень хорошо, но остальные, я получаю ошибкуTypeError: Не могу прочитать свойство undefined

TypeError: Cannot read property '0' of undefined

линия, где я всегда получаю эту ошибку является:

var FieldValue = details.requestBody.formData[ReceivedInputs[aux]][0];

ReceivedInputs один массив с именем все формы ввода страницы. И я пытался избежать этой ошибки, выполнив:

if (undefined != ReceivedInputs[aux])

Петля для извлечения значений является:

for(var aux=0;aux<ReceivedInputs.length;aux++) 
    { 
     if (undefined != ReceivedInputs[aux]) 
      { 
       var FieldValue = details.requestBody.formData[ReceivedInputs[aux]][0]; 
       alert(FieldValue); 
      } 
    } 

Во всяком случае, чтобы успешно проверить, если переменная не определено? Я попробовал

if (typeof ReceivedInputs[aux] != 'undefined')

тоже. И некоторые другие sugestions, но продолжают получать ошибку ...

+0

'console.log (ReceivedInputs [aux]); console.log (details.requestBody.formData [ReceivedInputs [aux]]); ' – user2736012

ответ

0

Вы должны проверить:

if (ReceivedInputs[aux] && details.requestBody.formData[ReceivedInputs[aux]]) { 
    var FieldValue = details.requestBody.formData[ReceivedInputs[aux]][0]; 
    ... 

потому, что значение из ReceivedInputs[aux] используется в качестве индекса для details.requestBody.formData массива.

+0

Умм ... Я не знаком с JavaScript. Во всяком случае, я сделал то, что вы сказали, и похоже, что он дает гораздо меньше ошибок, но я все равно получаю некоторые. И теперь вот так: 'TypeError: Не могу прочитать свойство« q »неопределенного' ... Как это возможно, свойство« q »? Я пытаюсь получить [0], не могу понять ... _EDIT: выглядит как «q» - это одно поле из последней посещенной страницы. Я думаю, что получаю эту ошибку, потому что «q» больше нет в реальной странице, но я не очистил массив ..._ – user2864778

+0

@ user2864778 - так что это еще одна проблема: wink: – kamituel

+0

Да .. Я не мог проверить больше, но я приму свой ответ. Спасибо! – user2864778

Смежные вопросы