2012-11-24 1 views
1

dojo 1.4에서 멈추었습니다.
window.confirm()에 대한 동기 (차단) 대화 상자가 필요합니다.
이유 : 단추를 확인/취소 대신 예/아니요 싶습니다.
이 대화 상자는 앱의 여러 부분에서 호출되므로 적절한 정리가 필요합니다. 이 기능을 가진 도장 라이브러리가 있습니까?
.js 파일이나 html/jsp 파일에서이 새 대화 상자를 포함 할 수 있도록 모든 동적 코드를 선호하지만 작동하는 것은 만족 스럽습니다.dojo 1.4 차단 예/아니오 window.confirm에 대한 대화 대체

+0

이 동기 방식으로 달성 할 수 없다. JavaScript가 아닙니다. 어쨌든 Promise API를 우아하게 사용하고 [확인 버튼이있는 Dojo 대화 상자] (http://stackoverflow.com/questions/10401512/dojo-dialog-with-confirmation-button/10405938#10405938)에서 설명한대로 비동기식으로 해결할 수 있습니다. – phusick

+0

양식 제출시 YES/NO 확인 대화 상자가 표시되기를 원합니다. 이것이 동기가 아니면 사용자가 YES/NO에 응답하기 전에 양식이 많이 제출되어 작동하지 않습니다. – anjanb

+0

@anjanb, 기본 동작 방지 (https://developer.mozilla.org/en-US/docs/DOM/event.preventDefault) (양식 제출)하고 JavaScript를 통해 제출할 수 있습니다. 준비된. – FakeRainBrigand

답변

1

동기식으로 설정할 수는 없지만 양식이 또는 onsubmit="return false;"으로 제출되는 것을 @FakeRainBrigand에서 언급하지 않도록 할 수 있습니다.

다음은 작동 예제입니다. http://jsfiddle.net/phusick/73PuE/.

enter image description here

내가 위의 코멘트에 언급 the confirm dialog 사용합니다. 그것은 도장 1.8로 작성된 것입니다,하지만 그것은 단지 dojo/on 대신 dojo.connet를 사용하여 1.4에서와 같은 더 많거나 적은이어야한다 :

var form1 = dom.byId("form1"); 

on(form1, "submit", function(event) { 
    event.preventDefault(); 
    var form = event.target; 
    MessageBox.confirm({ message: "Submit form?" }).then(function() { 
     // submit the form upon a click on `Yes` 
     form.submit(); 
    });   
}); 

당신은 평범한에서 같은 을 달성 할 수있는 자바 스크립트 :

function confirmHandler(event) { 
    event.preventDefault(); 

    var form = event.target; 
    // ask for a confirmation and if confirmed invoke: 
    // form.submit(); 
} 

등록 핸들러 :

<form onsubmit="confirmHandler(event);"> 
관련 문제