2016-12-06 40 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

初始化变量i的东西。现在它是空

var i = 0; 
+0

是的,它已经初始化在其他地方,我已经尝试过它不是问题的来源 –

0

在你livre()构造没有对象的属性进行初始化。用“这个”伪变量初始化构造的对象领域,替代varthis.

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

Operator new