2014-01-24 3 views
0

DOM 요소에 함수에 ID를 전달하고 이벤트 수신기를 추가하여 동적으로 DOM 요소에 액세스하려고하는 함수가 있습니다.이 코드는 외부에서 완벽하게 작동합니다. 함수는 여기에서 작동하지 않습니다.이 함수는 다음과 같습니다.DOM 요소 가져 오기 및 동적으로 이벤트 수신기 추가

var count = 0; 
function disableOnCheck(radioId, textBoxId) { 
var a = document.getElementById(radioId); 
var atext = document.getElementByID(textBoxId) 
alert(a.value); 
a.addEventListener('click', function (event) { 
    alert(count); 
    count++; 
    if (count === 2) { 
     a.checked = false; 
     atext.disabled = false; 
     count = 0; 
     return; 
    } 
    alert(a.value); 
    atext.disabled = true; 
}); 

}};

나는이 사용하여 실행 :

disableOnCheck에게 ('A', 'ATEST을');

또한 여기에 내가 자바 스크립트는 대소 문자를 구분 http://jsfiddle.net/vamsiampolu/vKkUP/2/

+0

그냥 ...에서 getElementById에 4 라인을 변경하지 – rafaelcastrocouto

+0

@rafaelcastrocouto가 수정하지만 텍스트 상자가 당신은 disableOnCheck'전화 당신의 바이올린에서 첫 번째 클릭 – vamsiampolu

+1

에 해제되지 않습니다에서 getElementById입니다 ('a', 'atest');'그것을 'atext'로 변경하십시오. http://jsfiddle.net/vKkUP/9/ – rafaelcastrocouto

답변

-1

처음에 참조해야 할 때

당신은이 disableOnCheck('a', 'atest');
, 자바 스크립트가 민감한 경우입니다 언어

작업 코드 :

var count = 0; 

function disableOnCheck(radioId, textBoxId) { 

    var a = document.getElementById(''+radioId); 
    var atext = document.getElementById(''+textBoxId); // you were using getElementByID which is wrong 
    alert(a.value);; 
    a.addEventListener('click', function (event) { 
     alert(count); 
     count++; 
     if (count === 2) { 
      a.checked = false; 
      atext.disabled = false; 
      count = 0; 
      return; 
     } 
     alert(a.value); 
     atext.disabled = true; 
    }); 
}; 

disableOnCheck('a','atext'); // HERE you were using `atest` which is not a element id it's `atext` 

바이올린 링크는 here.

+0

@downvoter 여기에 downvote의 이유를 알 수 있습니까? ? – nrsharma

1

만든 바이올린입니다. 그것은해야한다 :

var atext = document.getElementById(textBoxId); 

대신

var atext = document.getElementByID(textBoxId); 

의 오류를 볼 것입니다 : 당신이 그것을 사용하려고하면 콘솔에서 (catch되지 않은 형식 오류 개체 번호가있는 방법 '에서 getElementById'이 없습니다) .

업데이트 :

당신은 당신이 당신의 disableOnCheck 함수에서 잘못된 변수를 전달하기 때문에 당신이 원하는 것을 얻기되지 않습니다. 이 disableOnCheck('a', 'atext');

당신이 잘못 methond하여 요소 ID를 얻기 위해 시도하는 Fiddle

+0

이제 첫 번째 라디오 버튼을 클릭하여 텍스트 상자를 비활성화하고 두 번째. 아, 디버깅 및 콘솔, 한 가지 바이올린이없는 것 같습니다. – vamsiampolu

+0

이제 작동해야합니다. JsFiddle에는 콘솔이 없지만 브라우저는 않습니다. 희망이 도움이됩니다. – putvande

0

변화 document.getElementByIDdocument.getElementById

+0

그런데 지금은 첫 라디오 버튼 클릭시 텍스트 상자를 비활성화 할 수 없으며 second.Ahh, 디버깅 및 콘솔에서 텍스트 상자를 활성화 할 수 없습니다. 피들 (phiddle)은 가지고 있지 않은 것 같습니다 – vamsiampolu

관련 문제