Search code examples
jqueryjquery-uiconfirmconfirmation

Jquery confirmation not working


I tried this: https://stackoverflow.com/a/12617274/4164311. The string "Are you sure about this" just appears in my browser and nothing happens when I click the button.

<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Dialog - Modal confirmation</title>

  <link rel="stylesheet" href="jquery-ui.min.css">
  <script src="external/jquery/jquery.js"></script>
  <script src="jquery-ui.min.js"></script>

  <script>
   $("#dialog").dialog({
   autoOpen: false,
   modal: true,
   buttons : {
        "Confirm" : function() {
            alert("You have confirmed!");            
        },
        "Cancel" : function() {
          $(this).dialog("close");
        }
      }
    });

    $("#callConfirm").on("click", function(e) {
      e.preventDefault();
      $("#dialog").dialog("open");
    });
  </script>
</head>
<body>
<button id="callConfirm">Confirm!</button>

<div id="dialog" title="Confirmation Required">
  Are you sure about this?
</div>
</body>
</html>

Screenshot:

enter image description here


Solution

  • Try placing your js codes inside document ready function and it should work.

    $(function() {
      $("#dialog").dialog({
        autoOpen: false,
        modal: true,
        buttons: {
          "Confirm": function() {
            alert("You have confirmed!");
          },
          "Cancel": function() {
            $(this).dialog("close");
          }
        }
      });
    
      $("#callConfirm").on("click", function(e) {
        e.preventDefault();
        $("#dialog").dialog("open");
      });
    });
    

    Hope this helps.

    EDIT: Also, add/change jquery and css includes to:

     <link rel="stylesheet" href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
      <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
      <script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>