2012-11-08 2 views
0

내가 동적으로 양식을 작성하고 같은 요소를 추가하고있어 설정 대신에 '에'반환 :IE 입력 라디오 값은 항상 값이

크롬과 파이어 폭스, 자바 스크립트에서
<input name="2[]" class="changeable" type="radio" value="5"> 

:에

document.getElementsByName("2[]")[0].value 

반환 '5'예상대로,하지만 IE에서 (IE9 내 테스트) 그것은 '에'반환합니다.

IE가 값 세트를 무시하고 대신 확인 된 상태를 반환하는 몇 가지 이유가 있습니까?

답변

1

기본적으로 IE는 요소를 해당 객체로 취급하는 것 중 하나 인 라디오 버튼과 같은 것으로 초기화되므로 값의 중요성이 무시되지 않습니다.

디버거를 열고 코드를 단계별 실행하면 값 5가 실제로 설정되는 것을 알 수 있습니다. 입력 유형을 설정하는 줄에 올 때, 즉 input.type='radio'이 값이 5에서 '켜짐'으로 바뀌는 것을 볼 수 있습니다. 입력이 실제로 라디오 버튼이라는 것을 알게되면 IE가 라디오 버튼에 대한 생성자를 호출한다고 생각하십시오.

수정 사항?

이 경우에 충분히 간단하면 문장의 순서 만 변경하면됩니다. 예! 그처럼 간단합니다. 유형을 설정하려면 다음 값을 설정하십시오.

IE9와 Chrome에서 제대로 작동합니다.

{ 
    var extension_id = 2; 
    var input = document.createElement('input'); 
    input.name = extension_id + '[]'; 
    input.type = 'radio'; 
    input.checked = true; 
    input.value = 5; 
    input.className = 'changeable'; 
    document.body.appendChild(input); 

    alert(input.value); 
} 

오, 그리고 잊기 전에 - IE에서 F12를 사용하여 디버거를 열 수 있습니다. - 사용법에 관한 많은 비디오가 있습니다. :)

+0

고마워요! 나는 질서가 중요하다고 생각하지 않았다는 것을 알았습니다. 디버거에 대한 팁도 주셔서 감사합니다. – AndyC

+0

IE11이 여전히 어떤 영향을 받는지 믿을 수 없습니다. 수정 실제로 참으로 작동합니까, 감사합니다! –