2011-10-26 2 views
0

이것은 분명히 내 실수입니다. 버튼을 클릭하면 iFrame에서 달력 (ASP classic)이 열리는 C# 페이지가 있습니다. 즉 일정 AddToCartButton 같이 버튼의 클라이언트 ID를 전달하고,이 라인 사용된다. (가 Response.Write를 형 함수이며 단순히 페이지에 텍스트를 출력한다 LO)JavaScript가 숨겨진 후 부모 버튼을 표시하는 방법

lo("parent.document.getElementById('" & AddToCartButton & "').style.display = 'none';") 

캘린더가 나타나면 버튼을 숨 깁니다.

lo("parent.document.getElementById('" & PostBackField & "').value = '" & Replace(CurrentDate,":00 "," ") & "';") 

이 모두 잘 작동하지만 난 때와 다시 버튼을 켭니다 :

lo("parent.document.getElementById('" & AddToCartButton & "').style.display = '';") 
사용자가 날짜를 선택 후 일정 내 C# 텍스트 상자에 날짜를 넣어 비슷한 라인을 사용

아무 일도 일어나지 않습니다. 비슷한 결과가 아닌 '인라인'도 시도했습니다. 누구든지 내가 여기서 쓴 것은 내가 잘못하고있는 것에서 아이디어를 얻었습니까?

+0

프로그래밍 오류가 아니라면 단추가 표시되도록 설정할 수 있지만 표시되지 않으므로 화면이 새로 고침되지 않을 수 있습니다 ...하지만 나는 빨대를 쥐고 ​​있습니다. 저는 30 년 동안 프로그래밍을 해왔지만 웹 프로그래밍에 익숙하지 않습니다. – Deverill

+0

왜 내가 마지막 줄에 문자열로 lo() 코드를 전달했는지 모르겠다. 사용자가 날짜를 선택하면 캘린더가있는 페이지에서 직접 실행할 수 없습니까? –

+0

우리가 사용하는 상점 전면 패키지에서 해당 필드가 상위 페이지 (C#)에서 사용 되었기 때문에 그 필드를 사용할 수 없습니다. 달력은 우리가 다른 예약 시스템과 대화하기 위해 쓴 것입니다. 날짜는 텍스트 상자뿐만 아니라 표시를 위해 부모가 읽을 수 있어야합니다. – Deverill

답변

0

디스플레이 대신 가시성을 사용해야하지만 코드가 디스플레이에서 작동하지 않는 이유를 알 수 없습니다. 숨겨진에 표시를 설정

lo("parent.document.getElementById('" & AddToCartButton & "').style.visibility = 'hidden';") 

다음

lo("parent.document.getElementById('" & AddToCartButton & "').style.visibility ='visible' 

가시성이 자리에서 항목을 유지하는 흐름에서 항목을 제거하고, 그냥 당신이 원하는 것을 생각하는, 그것을 숨 깁니다.

여기에 차이점을 설명하는 데 좋은 article입니다.

다음은 함께 던진 간단한 샘플입니다.

<html> 
    <head> 
    <script type="text/javascript"> 
    function show_button() 
    { 
     document.getElementById("targetBtn").style.visibility = 'visible'; 
    } 
    function hide_button() 
    { 
     document.getElementById("targetBtn").style.visibility = 'hidden'; 
    } 
    function remove_button() 
    { 
     document.getElementById("targetBtn").style.display = 'none'; 
    } 
    </script> 
    </head> 
    <body> 
    <input id="targetBtn" type="button" value="Button to Hide/Show" /> 
    <input type="button" onclick="show_button()" value="Show Button" /> 
    <input type="button" onclick="hide_button()" value="Hide Button" /> 
    <input type="button" onclick="remove_button()" value="Remove Button" /> 

    </body> 
    </html> 

이 예제를 실행하려면 표시 및 숨기기 단추를 클릭하십시오. 그들이 어떻게 페이지에 계속 머무는 지 알게 될 것입니다. 제거 버튼을 클릭하면 모두 왼쪽으로 이동합니다.

+0

고마워, 네 말이 맞아, 내가 뭘하고 싶은지. 나는 오늘 그것을 조사 할 것이다. 디스플레이를 사용했기 때문에 Google에서 내 작업을 검색하는 것으로 나타났습니다 ...하지만 대부분 자바 스크립트 솔루션 사이트이며 .NET을 고려하지 않습니다. 나는 이것에 대해 아직 익숙하지 않아서 도망 갔다 : – Deverill

+0

이것은 내가 원하는 것을하는 훨씬 더 좋은 방법이다. 자세히 시간을내어 새로운 것을 가르쳐 주셔서 감사합니다! – Deverill

+0

기꺼이 도와 드리겠습니다. –

1

firebug에 익숙하십니까? 그것을 사용하여 문제를 디버그하는 데 도움이되는지보십시오. 문제의 라인을 실행하고 무슨 일이 일어나고 있는지를 알 수있는 iframe 윈도우 코드에 중단 점을 설정할 수 있습니다. 여기서 변수로 parent.document.getElementById('" & AddToCartButton & "')을 설정하고 얻은 결과를 확인하려고합니다.

+1

우리에게 보여준 것이 아닌 다른 일이 있습니다. 방금이 코드를 실행하여 내 iFrame 창에서 컨트롤을 숨기고 표시 할 수있었습니다. 희망봉이 당신을 도울 수 있습니다. –

+0

당신이 맞다고 생각합니다. – Deverill

+0

+1 다른 코드에서 문제를 찾아 보도록하겠습니다. 감사! – Deverill

관련 문제