I wonder if it's possible to replace standard text on confirm-popup
buttons from 'ok' and 'cancel' to some other captions.
It isn't.
If not, is there a way to create quickly custom dialog, with only two
buttons, returning 'true' or 'false'? Would I have to use forms to
return value from my custom dialog?
There are plenty, they just won't be modal (i.e., prevent you from
using the page while being shown). That also means that you can't
simply call it as a function that returns the user's choice. You will
have to get the answer from the click event instead.
The simplest is to have a <div> with two buttons, and show it when
needed. Something like:
---
<style type="text/css">
#confirmBox {
width:10em;
height:5em;
position:absolute;
z-index:1;
visibility:hidden;
background:blue;
color:white;
border:6px double white;
text-align:center;
}
</style>
<script type="text/javascript">
var answerFunction;
function myConfirm(text,button1,button2,answerFunc) {
var box = document.getElementById("confirmBox");
box.getElementsByTagName("p")[0].firstChild.nodeValue = text;
var button = box.getElementsByTagName("input");
button[0].value=button1;
button[1].value=button2;
answerFunction = answerFunc;
box.style.visibility="visible";
}
function answer(response) {
document.getElementById("confirmBox").style.visibility="hidden";
answerFunction(response);
}
</script>
...
<div id="confirmBox">
<p>Continue?</p>
<p><input type="button" onclick="answer(true)" value="Ok">
<input type="button" onclick="answer(false)" value="Cancel"></p>
</div>
<script type="text/javascript">
function tester(button) {
myConfirm("Say Aye or Nay!","Aye","Nay",
function(answer) {
button.value="Last answer was: "+(answer?"Aye":"Nay");
});
}
</script>
<input type="button" value="Answer me!" onclick="tester(this)">