2016-11-18 21 views
0

我有這段代碼,但我無法獲得輸入到helpCallback()的值,我得到的所有值都是未定義的。 我必須做一個封閉。Javascript:如何獲取變化輸入的值

function tablaR(num){ 
    var seccion=document.getElementById("tabla"); 
    seccion.innerHTML=""; 
    seccion.style.display='block'; 

    for (var i = 0; i < 11; i++) { 
     var prod=parseInt(num*i); 
     var t=document.createTextNode(num+" x "+i+"= "); 
     var inp=document.createElement('INPUT'); 

     inp.setAttribute('type', 'number'); 
     inp.setAttribute('id', 'resul'); 

     inp.addEventListener("change", helpCallback(num, this.value)); 
     var para=document.createElement("p"); 
     para.appendChild(t); 
     para.appendChild(inp); 
     seccion.appendChild(para); 
    } 
} 

function helpCallback(prod, resp){ 
    return function(){ 
     resp=parseInt(inp.value); 
     if(resp!=prod){ 
      this.style.color = "red"; 
     } 
     else{ 
      this.style.color = "green"; 
     } 
    } 
} 

回答

1

this是不是你在哪裏執行helpCallback功能的元件,但你可以只得到值返回函數內

inp.addEventListener("change", helpCallback(num)); 

function helpCallback(prod){ 
    return function(){ 
     var resp = parseInt(this.value, 10); 

     if(resp!=prod){ 
      this.style.color = "red"; 
     } else{ 
      this.style.color = "green"; 
     } 
    } 
} 
+0

這工作!謝謝! – user7142440