Page 1 of 1

이것 버그가 아닐까요?

Posted: 2005 03 21 13:07 52
by 박민권
form 값을 iframe으로 전송하고 스크립트를 사용해서 form내의 hidden객체 값을
변경시킨후 다시 iframe으로 전송하면 이전값이 그대로 날아갑니다.
분명 스크립트로 내부 hidden객체의 value를 출력하면 값은 바뀌어 있지만
전송되는 값은 이전값 입니다. ㅠ_ㅠ

음... 거기다가 hidden객체의 값은 reset()도 안되는군요.

폼.reset();
alert(폼hidden객체.value); 리셋전의 값이 나타남.

단순히 submit객체를 이용하면 문제가 없지만

폼.submit(); 으로 전송하면 맨처음 보낸값만을 보냅니다.

이런식으로

Posted: 2005 03 21 13:35 57
by 박민권

Code: Select all


<script>
function Test(){
	var frm = document.forms['frmControl'];
	frm.type.value = 'a';
	frm.submit();
	frm.type.value = 'b';
	frm.submit();
}
</script>

<iframe name="ifreHide"></iframe>

<form name="frmControl" action="test.php" method="post" target="ifreHide">
    <input type="hidden" name="type" />
</form>
위의 test()함수를 실행시키면 무조건 'a'만 넘어갑니다.
버그인듯

버그하나 해결법 찾아냈습니다.

Posted: 2005 03 21 14:09 38
by 박민권

Code: Select all

<script>
function Test(){
   var frm = document.forms['frmControl'];
   frm.type.value = 'a';
   frm.submit();
   frm.target = '아이프레임';   //target을 한번더 지정해준다.
   frm.type.value = 'b';
   frm.submit();
}
</script>
폼의 target이 똑같은 iframe라도 target을 한번더 지정하면 이전에 전송한 폼값이
아닌 새로운 폼값이 넘어갑니다. 이것은 명백한 버그인것 같습니다.
오페라에서도 이런 문제는 없었는데 불여우만 그렇군요.
구글에서 눈빠지게 찾아도 못찾다가 별 실험을 다 해본 결과 target을 다시한번
지정해주자 해결됐습니다. (아~ 눈아파 ㅠ_ㅠ)

휴~ 이제 다시 만들던거 계속 만들어야징. ㅡㅅㅡ