2011-10-18 4 views
0

I가 다음 코드 평화 : 이것은 위의 사용자가 체크 박스를 체크하고 개방을 의미하는 것입니다 위의 CommandLink는을 클릭 할 수있는 테이블에 배치됩니다시간 : CommandLink는와의 onclick 자바 스크립트 기능

<DIV> 
    <h:commandLink action="#{documentGen.generatePDF}" 
     target="_blank" 
     onclick="return checkSelected();"> 
     <h:graphicImage url="/images/pdf.jpg" 
     styleClass="pdfimage" title="Click to show PDF"></h:graphicImage> 
    </h:commandLink> 
</DIV> 

새 창에서 백 콩이 생성 한 콘텐츠를 표시합니다. #{documentGen.generatePDF}.

이 경우 예상대로 작동합니다. onclick="return checkSelected();"이 포함되어 있습니다. 내가 그것을 포함한다면 백 콩은 결코 호출되지 않으며, 대신 현재의 복제본 인 새로운 창을 얻는다.

사용자가 적어도 1 체크 박스를 선택했는지 확인하려면 javascript 함수가 필요합니다. 그렇지 않으면 경고가 표시됩니다. Javascript 함수는 정상적으로 작동하며 commandLink가 클릭 될 때 아무 체크 상자에도 체크 표시가 없으면 경고를 봅니다.

제 질문은 왜 onclick 커맨드 링크가 무슨 일을합니까? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

UPDATE는 :

h:commandLinkh:form 안에. 위에서 언급 한 것처럼 명령 링크는 onclick=....없이 예상대로 작동합니다. 에 클릭에

function testFunc() { 
     alert("GOT Here!") 
     return ture; 
} 

과 CommandLink는에 : 테스트하려면

는 난에 온 클릭에라는 자바 스크립트 함수를 변경! "여기 GOT"onclick="return testFunc();"

결과 내가 경고를 얻을 수있다 이전과 같이 새 창은 현재 창과 중복되며 백 콩은 호출되지 않습니다. onclick 줄을 제거하면 결과가 정정됩니다 (그러나 확인란이 선택되어 있는지 확인하려면 javascript 함수가 필요합니다). 브라우저 원본

가 onclik없이 온 클릭하여 CommandLink는 차이를 확인하면 아래와 같다 :

<a href="#" onclick="return oamSubmitForm('genView','genView:_idJsp33','_blank',[]);" id="genView:_idJsp33" target="_blank"><img src="/images/pdf.jpg" title="Click for Pdf Document" class="pdfimage"></a> 


    <a href="#" onclick="return testFunc();;return oamSubmitForm('genView','genView:_idJsp33','_blank',[]);" id="genView:_idJsp33" target="_blank"><img src="/images/pdf.jpg" title="Click for Pdf Document" class="pdfimage"></a> 

어떤 도움이 인정 될 것이다. 당신이 CommandLink는의 onclick 이벤트에 false를 반환하는 경우 감사

답변

5

를 제출하지 않습니다 문제는 당신이 항상 반환하는 것입니다. 나는 네가 원하는 것이 필요하다면 거짓으로 돌아가고, 그렇지 않으면 계속 진행할 것이라고 생각한다. 이전에 반환 할 경우 호출되지 제출하기 때문에

그래서,

onclick="if (checkSelected()) { return false; }"

아약스 양식을 제출하여이 확실히 문제입니다에 onclick을 변경합니다. 이 표준 양식도 제출하는 것으로 추정됩니다.

+0

정말 고맙습니다. – ke3pup

0

이 양식은