2011-05-05 2 views
1

어떻게하면 취소 버튼이 페이지의 저장을 처리하지 못하게합니까?함수 내에서 confirm() 프롬프트를 사용할 수 있습니까? 방법?

요소 ID '항목'이 변경 될 때만 프롬프트를 시작하려고합니다.

나는 OK와 CANCEL 프롬프트를 실제로 잘 볼 수있다. 그러나 취소를해도 페이지가 전송되지 않습니다.

<script type='text/javascript'> 
var strProductNum = document.getElementById('item').value; 
function isProductNumChanged(itemValue){ 
    if (strProductNum != itemValue){ 
     var valueYesNo = confirm('Really change this Product Number to ' + document.getElementById('item').value + '?'); 
    } 
    if (valueYesNo){ 
     return true; 
    }else{ 
     return false; 
    } 
} 
</script> 

이렇게하면 이벤트가 발생합니다. 인라인 이벤트 핸들러를 사용하여 (onclick=""를 등) 기본 이벤트가 일어나고 중지해야하는 경우

<h:commandButton id="save1" 
       onclick="isProductNumChanged(document.getElementById('item').value);" 
       value="Save" action="#{itemHome.saveItem}" /> 
+2

당신은 양식 (예 :'

제출 될 때 실행하려면이 기능을 설정'또는 무엇을 어떻게 우리를 게재 할 수 있습니까? 당신의 기능은 형태와는 아무 상관이없는 –

+2

제출하여 두 사람이 함께 묶일 때까지는 저장을 막지 않을 것입니다. – Ben

답변

2

, 당신의 이벤트 핸들러 함수에서 false를 반환하는 것만으로는 충분하지 않습니다. 또한 인라인 이벤트 처리기를 지정할 때 함수 이름 앞에 return을 입력해야합니다.

onclick="return isProductNumChanged(document.getElementById('item').value);" 
+1

+1 그 코드 줄을 궁금하지 않으 셨습니다 ... 간단합니다 ... –

+0

@Caspar OP가 나중에 추가했습니다. 문제가 설명에 따라 함수가 작동해야했기 때문에 추가해야 할 행이 있으므로 인라인 처리기가되어야합니다. upvote. – kapa

관련 문제