tags:

views:

568

answers:

2
+1  Q: 

html Modal popup

All,

How to make a simple modal popup for the following code.And on click on the background the modal popup should not disappear.

<html>
<input type="textarea"></input>
</html>

Thanks.........

+1  A: 

jQueryUI has a modal dialog plugin. It won't release control simply by clicking the background, as you requested: http://jqueryui.com/demos/dialog/#modal

<a href="#" class="showModal">Show Modal Box</a>
<div id="modalContents" style="display:none;">
  <textarea>Hello World</textarea>
</div>

--

$(".showModal").click(function(e){
  e.preventDefault();
  $("#modalContents").dialog({bgiframe: true, height: 140, modal: true});
});
Jonathan Sampson
Let me try this...Thanks.
Hulk
Note: `bgiframe` is another plugin that's used to circumvent some of IE6's form-rendering issues.
Jonathan Sampson
I will look into this 2.Thanks again..
Hulk
A: 

Here's a plain-JavaScript example:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
<html xmlns="http://www.w3.org/1999/xhtml"&gt;
    <head>
        <title>Basic modal demo</title>
        <style type="text/css">
            body { margin: 0; }
            #shade, #modal { display: none; }
            #shade { position: fixed; z-index: 100; top: 0; left: 0; width: 100%; height: 100%; }
            #modal { position: fixed; z-index: 101; top: 33%; left: 25%; width: 50%; }
            #shade { background: silver; opacity: 0.5; filter: alpha(opacity=50); }
        </style>
    </head>
    <body>
        <div id="shade"></div>
        <div id="modal">
            <textarea rows="5" cols="25"></textarea>
            <button id="close">Close</button>
        </div>

        <p>
            <button id="start">Start</button>
        </p>
        <script type="text/javascript">
            var modal= document.getElementById('modal');
            var shade= document.getElementById('shade');
            document.getElementById('start').onclick= function() {
                modal.style.display=shade.style.display= 'block';
            };
            document.getElementById('close').onclick= function() {
                modal.style.display=shade.style.display= 'none';
            };

            // This code is a workaround for IE6's lack of support for the
            // position: fixed style.
            //
            if (!('maxHeight' in document.body.style)) {
                function modalsize() {
                    var top= document.documentElement.scrollTop;
                    var winsize= document.documentElement.offsetHeight;
                    var docsize= document.documentElement.scrollHeight;
                    shade.style.height= Math.max(winsize, docsize)+'px';
                    modal.style.top= top+Math.floor(winsize/3)+'px';
                };
                modal.style.position=shade.style.position= 'absolute';
                window.onscroll=window.onresize= modalsize;
                modalsize();
            }
        </script>

    </body>
</html>

There are various improvements you can make from there, such as iframe hacks to fix IE z-indexing, or encapsulating it in a reusable object, but that's the basic way it's done.

bobince
Thanks i will look into what u have indicated....
Hulk