개발 Q&A

제목 익스에서는 잘 된느데 크롬, 파폭, 사파리에선 안되네요 ?
글쓴이 람이 작성시각 2014/08/14 11:33:23
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 12111   RSS

팝업창에서 
top.opener.payCheckNumber(top.opener.document.forms['buyinfofrm'].pay_usecoupon,1);

이 부분을 호출합니다.


부모 페이지에서...
<script language=javascript>
<!--
function digit(vfl){
    var digit=vfl.value

    if(digit){
        var digit_val = digit.split("|");

        document.buyinfofrm.usedigitcouponnum.value=digit_val[0];
        document.buyinfofrm.usedigitcouponkey.value=digit_val[1];
        document.buyinfofrm.pay_usedigitcoupon.value=digit_val[2];
        document.buyinfofrm.Opay_usedigitcoupon.value=digit_val[2];

        if (!digit_val[0]){
            document.buyinfofrm.usedigitcouponnum.value="";
            document.buyinfofrm.pay_usedigitcoupon.value=0;
            document.buyinfofrm.Opay_usedigitcoupon.value=0;
            document.buyinfofrm.returnemoney.value=0;
        }
    } else{
        document.buyinfofrm.usedigitcouponnum.value=""; 
        document.buyinfofrm.pay_usedigitcoupon.value=0;
        document.buyinfofrm.Opay_usedigitcoupon.value=0;
        document.buyinfofrm.returnemoney.value=0;
    }

    payCheckNumber(document.buyinfofrm.pay_usedigitcoupon,2);


이걸 어떻게 처리해야 할까요 ?
 
 다음글 <tr> <td>가 없어지는 문제 (1)
 이전글 sql 셀프조인 가능할까요? (2)

댓글

letsgolee / 2014/08/15 10:50:21 / 추천 0
코드를 보니 예전 익스플로러가 대부분일 때 사용하던 방식으로 짜셨네요. 이것은 바람직하지 못합니다. 코드를 재작성하는 것이 필요한데 표준화된 코드를 쓰시는 것이 cross-browser를 위한 것입니다.

예로 document.forms['buyinfofrm'].pay_usecoupon 를 들어 설명하면 이것은 올바른 방법이 아닙니다. 되도록 name 보다는 id를 사용하는 것이 바람직하지만 혹 name을 사용하더라도 뒤의 form element를 불러올 때 역시 잘못되었습니다. 최신 브라우져에서는 지원되지 않기 때문에 다음의 방식처럼 사용되어야 하겠죠.
document.forms['buyinfofrm'].elements.pay_usecoupon 혹은 document.forms['buyinfofrm'].elements['pay_usecoupon']

 
람이 / 2014/08/18 14:53:20 / 추천 0
letsgolee 님 감사합니다.
일단 그냥 제이쿼리를 찾아서 응용해 적용했습니다.