2016-12-06 6 views
1

Свойство l.livreobj не определено ниже. Зачем?Свойства объекта не определены при создании новых

function livre() { 
      i=i+1; 
      var cd = document.getElementById("act").value.substr(0,3)+"-"+i; 
      var isbn = document.getElementById("isbn").value; 
      var act = document.getElementById("act").value; 
      var titre = document.getElementById("titre").value; 

      var livreobj ={ 
       Cd:cd, 
       Isbn:isbn, 
       Act:act, 
       Titre:titre 
      }; 

    } 



     function add() { 
      var l = new livre(); 
      alert("kjkj"); 
      ajoutertable(l.livreobj); 
     } 

HTML:

<body> 
code : <input type="text" id="cd" disabled/> 

    isbn : <input type="text" id="isbn"/> 

    Acteur : <input type="text" id="act"/> 

    Titre : <input type="text" id="titre"/> 

    <input type="button" id="ajt" value="Ajouter" onclick="add();"/> 

<table border id = "myTable"> 
<tr> 
    <td> 
    Code</td> 
    <td> 
    ISBN</td> 
    <td> 
    Auteur</td> 
    <td> 
    Titre</td> 
    <td> 
    Action</td> 
</tr> 
</table> 
+0

какова ваша HTML структура? – Dekel

+1

Я не очень люблю эту логику, но мне кажется, что это должно быть 'this.livreobj = ...' вместо var – Taplar

+0

@AyoubElHafi отредактируйте ваш вопрос и поместите в него разметку, а не как комментарий. – Taplar

ответ

-1

Инициализировать переменную я к чему-то. Прямо сейчас это нулевое значение

var i = 0; 
+0

да, это уже Инициализировано где-то еще, и я попробовал, это не источник проблемы –

0

В вашем конструкторе livre() свойства объекта не инициализируются. Использование "это" псевдо-переменный для инициализации сконструированного поля объекта, замените var с this.:

 this.livreobj ={ 
      Cd:cd, 
      Isbn:isbn, 
      Act:act, 
      Titre:titre 
     }; 

См Operator new

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