Return value of jquery UI dialog Box
Solution 1
You cannot return something from the OK / cancel functions as they are essentially event handlers that are only processed upon the click of a button.
Use a separate function to process the result :
$mydialog = $("#dialog").dialog({
autoOpen: false,
buttons: {
"ok": function() {
$(this).dialog("close");
processResult(true);
},
"cancel": function() {
$(this).dialog("close");
processResult(false);
}
}
});
$mydialog.dialog("open");
function processResult(result) {
alert(result);
}
Working example : http://jsfiddle.net/nz2dH/
Solution 2
I have implement Yes/No confirmation dialog with custom message and callback function like this. This is useful, if you like to use the same dialog for various purposes.
<script type="text/javascript">
// prepare dialog
$(function () {
$("#confirm-message-dialog").dialog({
autoOpen: false,
modal: true,
closeOnEscape: false,
buttons: {
Yes: function () {
$(this).dialog("close");
$(this).data("callback")(true);
},
No: function () {
$(this).dialog("close");
$(this).data("callback")(false);
}
}
});
});
// open dialog with message and callback function
function confirmMessageDialog (message, callback) {
$('#confirm-message-dialog-message').text(message);
$('#confirm-message-dialog').data("callback", callback).dialog("open");
};
</script>
<!-- The dialog content -->
<div id="confirm-message-dialog" title="Warning">
<p id="confirm-message-dialog-message"></p>
</div>
Hope that this helps others as well :)
Comments
-
Umesh Patil almost 2 years
You may find solution over this in many posts(Post 1 , Post2 ), but their solution not working for me.
Here is the normal jquery dialog box written by me.
$("#dialog").dialog({ autoOpen:false, buttons:{ "ok":function(){ $(this).dialog("close"); return true; }, "cancel":function(){ $(this).dialog("close"); return false; } } });
I will open the dialogbox with code:
var returnVal=$("#dialog").dialog("open");
I need to return
false
,if user clicks 'cancel' and returntrue
if user clicks 'ok'.var returnVal=$("#dialog").dialog("open");
I NEED
returnVal
to returnboolean
value(true/false), but it returns javascriptobject
. -
Umesh Patil over 12 yearssorry ManseUK (I wanted to accept it with Big Thanks !) but wait wait.. I working over it on my page.. I just provided little code to you here. I am not able to propogate 'result' where form is submitted.
-
Manse over 12 years@Umesh I wanted you to read that page and accept other answers too - not for this question ... can you create a jsfiddle.net with your problem
-
Umesh Patil over 12 yearsoff course ManseUK.. it will take some time. can you please wait for me..?