2016-11-18 6 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

관련 문제