2015-01-12 2 views
0

javascript를 사용하여 양식 필드의 값을 설정하고 있습니다. innerHTML을 사용하여 해당 필드의 HTML 콘텐츠를 선택하면 값이 사라집니다. 다음은 코드입니다. Firefox에서 innerHTML이 제대로 작동하지 않습니까?

function test() { 
 
    document.getElementById("fname").value = "Deepak"; 
 
} 
 

 
function test2() { 
 
    alert(document.getElementById("testform").innerHTML); 
 
}
<form id="testform"> 
 
    <input type="text" name="fname" id="fname"> 
 
</form> 
 
<input type="button" value="Set Value" onclick="test()"> 
 
<input type="button" value="Show Inner HTML" onclick="test2()">

나는이에 jQuery를 사용하기 때문에 단지 JS를 사용하여 수행 할 필요가 없습니다 수

. , <input name="fname" id="fname" type="text">

이 문제를 해결하기 위해 어떤 해결 방법을 출력 <input name="fname" id="fname" type="text" value="Deepak"> 을해야하지만 현재이 보여? 이 IE에서 잘 작동합니다.

+1

달성하려는 목표는 무엇입니까? 필드 값 변경이 DOM 속성에 반드시 반영되는 것은 아닙니다. – JLRishe

+0

@JLRishe : 필드 값을 'Deepak'으로 설정 한 후 innerHTML이 왜 가져 오지 않습니까? –

+0

입력 값은 HTML의 일부가 아닙니다. HTML은 수정 된 값이 아니라 원래 값만 포함합니다. – Barmar

답변

1

FireFox에서 관찰하는 동작이 올바른 동작입니다. 입력의 값을 변경해도 value 속성이 변경되지 않아야합니다 (속성이있는 경우). 최신 버전의 IE는 FireFox와 동일한 방식으로 작동하며 이전 버전의 IE에는 코드가 의존하는 버그가 있습니다. 당신은 DOM level 2 spec에서 볼 수 있습니다

변경 [value 부동산]

이 폼 컨트롤의 내용을 변경하지만, 요소의 HTML의 value 속성의 값을 변경하지 않습니다. 내가 잘못 본게 아니라면

, 당신은 Modalbox.show()에 직접 DOM 노드를 통과 할 수 있어야한다 :

Modalbox.show(document.getElementById('RAForm'), {title: 'Create RA', width:700}); 

그래서 그것을 시도하십시오. 나는 그것이 당신의 문제를 해결해야한다고 생각합니다.

관련 문제