Advertisement
terorama

JavaScript experiments

Oct 1st, 2012
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4.    <meta http-equiv="Content-type" content="text/html; charset=windows-1251" />
  5.    <meta name="description" content="Упражнение по JS, фреймворк" />
  6.    <meta name="keywords" content="CSS, JavaScript, JQuery" />
  7.    
  8.    <title>Упражнение 10, JS - разные тесты"</title>
  9.  
  10.    <script type="text/javascript" src="js/jquery-1.7.2.js"></script>
  11.    
  12.    <link href="js/jsfw_css.css" rel="stylesheet" type="text/css" />
  13.    
  14.  
  15.    
  16. <script type="text/javascript">
  17.  
  18.    //-----------------------------
  19.    function el(instr) {
  20.       return document.createElement(instr);
  21.    }
  22.    //-----------------------------
  23.    function tx(instr) {
  24.       return document.createTextNode(instr);
  25.    }
  26.    //-----------------------------
  27.    function gid(instr) {
  28.       return document.getElementById(instr);
  29.    }
  30.    //-----------------------------
  31.    function ap(el, inel) {
  32.       if (!inel)
  33.          document.body.appendChild(el);
  34.       else
  35.          inel.appendChild(el);
  36.    }
  37.    
  38.    //-----------------------------
  39.    function put_block_right(el4, el5) {
  40.      
  41.       var sx = document.documentElement.scrollLeft || document.body.scrollLeft;
  42.       var sy = document.documentElement.scrollTop || document.body.scrollTop;
  43.      
  44.       var cx = document.documentElement.clientLeft || document.body.clientLeft || 0;
  45.       var cy = document.documentElement.clientTop || document.body.clientTop || 0;
  46.      
  47.       var z = el5.getBoundingClientRect();
  48.      
  49.       el4.style['position']='absolute';
  50.       el4.style['left']=(z.right+sx-cx)+'px';
  51.       el4.style['top']= (z.top+sy-cy)+'px';
  52.    }
  53.    
  54.    //-----------------------------
  55.    function fit_to_content() {
  56.    
  57.      
  58.      
  59.       var neww=0;
  60.       var newh=0;
  61.       var els = this.childNodes;
  62.       for (i=0; i<els.length; i++ ) {
  63.      
  64.          var wr=els[i].offsetLeft+els[i].offsetWidth;
  65.          var wh=els[i].offsetTop+els[i].offsetHeight;
  66.          if (neww<wr)
  67.             neww=wr;
  68.            
  69.          if (newh<wh);
  70.             newh=wh;
  71.       }
  72.      
  73.       this.style.width=neww+'px';
  74.       this.style.height=newh+'px';
  75.    }
  76.    //-----------------------------
  77.    function loadfunc() {
  78.       draw_base_form();
  79.      
  80.       window.Ddrop = new ddrop();
  81.      
  82.       fmdiv=gid('zfinf');
  83.       fmdiv.style.left=(window.innerWidth-fmdiv.offsetWidth-50)+'px';
  84.      
  85.       frmel=gid('zzzfff')
  86.       fmdiv.style.height= (frmel.offsetTop+ frmel.offsetHeight+100)+'px';
  87.       //(window.innerHeight-20)+'px';
  88.       //fmdiv.firstChild.nextSibling.nextSibling.offsetHeight+'px';
  89.      
  90.       Ddrop.hook(gid('movver'));
  91.      
  92.    }
  93.    
  94.    //---------------------------------
  95.    draw_test_form = function () {
  96.    
  97.       //var cont=el('DIV');
  98.       //cont.className('info_service moveable');
  99.      
  100.       var frm = document.forms.testform;
  101.      
  102.       frm.username.style.color='#aaa';
  103.       frm.username.value='Введите имя пользователя';
  104.      
  105.       frm.comments.style.color='#aaa';
  106.      
  107.       var zel = frm.country;
  108.      
  109.       var sel = document.createElement('SELECT');
  110.       sel.name='usernames';
  111.       zel.parentNode.insertBefore(sel,zel.nextSibling);
  112.      
  113.       appOptions();
  114.       //------------------------
  115.       function appOptions() {
  116.          var tst=['std disabled', 'std selected'];
  117.          
  118.          for (i=0; i<tst.length; i++) {
  119.             var opt = new Option (tst[i], tst[i].replace(' ','_'),  false, false);
  120.            
  121.             try {
  122.                sel.add(opt, null);
  123.                
  124.             } catch (e)
  125.             {
  126.            
  127.                sel.add(opt);
  128.             }
  129.                
  130.          }
  131.          
  132.          sel.options[0].disabled=true;
  133.          sel.options[1].selected=true;
  134.       }
  135.       //----------------------------
  136.      
  137.       var doms = frm.domains;
  138.       var sel4 = document.createElement('SELECT');
  139.      
  140.       sel4.name='domains4';
  141.       sel4.size=8;
  142.       sel4.multiple=true;
  143.      
  144.       var items4=['microsoft.com','google.com','yandex.ru','bbc.com.uk', 'mail.ru', 'news.cn'];
  145.      
  146.       for (i=0; i<items4.length; i++) {
  147.      
  148.          var opt = new Option(items4[i], 'item4_'+i, false, false);
  149.          try {
  150.             sel4.add(opt, sel4.options[0])
  151.          }
  152.          catch(exc) {
  153.             sel4.add(opt,0);
  154.          }
  155.       }
  156.       doms.parentNode.insertBefore(sel4, doms.nextSibling);
  157.      
  158.      
  159.      
  160.       //-------------------------
  161.      
  162.       //------------------------
  163.      
  164.       frm.stdu='Введите имя пользователя';
  165.       frm.stdu3=frm.comments.value;
  166.       //--------------------------------
  167.       frm.username.onfocus=function() {
  168.      
  169.          this.style.color='black';
  170.          
  171.          if (this.value==this.form.stdu) {
  172.             this.value='';
  173.            
  174.          }
  175.       }
  176.      
  177.       //--------------------------------
  178.       frm.username.onblur=function() {
  179.          if (this.value=='') {
  180.             this.value=this.form.stdu;
  181.             this.style.color='#aaa';
  182.          }
  183.       }
  184.      
  185.       //-----------------------------------------------------------
  186.       frm.comments.onfocus=function() {
  187.      
  188.          this.style.color='black';
  189.          if (this.value==this.form.stdu3) {
  190.             this.value='';
  191.          }
  192.       }
  193.      
  194.       //--------------------------------
  195.       frm.comments.onblur = function() {
  196.          if (this.value=='') {
  197.             this.value=this.form.stdu3;
  198.             this.style.color='#aaa';
  199.          }
  200.       }
  201.       //-----------------------------------------------------------
  202.       frm.username.onkeyup=function() {
  203.          if ((this.value=='') || (this.value==this.form.stdu)) {
  204.          
  205.             frm.userpassword.disabled=true;
  206.             frm.confirmpassword.disabled=true
  207.          }
  208.          else {
  209.             frm.userpassword.disabled=false;
  210.             frm.confirmpassword.disabled=false;
  211.          }
  212.          
  213.       }
  214.      
  215.       //--------------------------------
  216.       frm.username.onchange=function() {
  217.          if ((this.value!='') && (this.value!=this.form.stdu)) {
  218.          
  219.             var sel = this.form.usernames;
  220.             var opt= new Option(this.value+' - '+sel.options.length,
  221.                                 'opt'+sel.options.length, false, false);
  222.                                
  223.             try {
  224.                sel.add(opt, sel.options[0])
  225.             } catch (ex) {
  226.                sel.add(opt,0);
  227.             }
  228.            
  229.          }
  230.       }
  231.      
  232.      
  233.       //--------------------------------
  234.       frm.confirmpassword.onkeyup=function() {
  235.      
  236.          var nch=this.parentNode.childNodes;
  237.          
  238.          if (this.value=='') {
  239.          
  240.             if (this.prev) {
  241.                this.parentNode.replaceChild(this.prev, nch[nch.length-1]);
  242.             }
  243.             return;
  244.          }
  245.          if (this.value!=this.form.userpassword.value) {
  246.          
  247.             if (!this.sp) {
  248.                this.sp = document.createElement('span');
  249.                this.sp.style.color='red';
  250.                this.sp.innerHTML='password don\'t match';
  251.             }
  252.            
  253.            
  254.            
  255.             var prev= this.parentNode.replaceChild(this.sp, nch[nch.length-1]);
  256.             if (!this.prev)
  257.                this.prev = prev;
  258.            
  259.          } else {
  260.             if (!this.sp8) {
  261.                this.sp8 = document.createElement('span');
  262.                this.sp8.style.color='green';
  263.                this.sp8.innerHTML='password match';
  264.             }
  265.            
  266.             var prev = this.parentNode.replaceChild(this.sp8, nch[nch.length-1]);
  267.             if (!this.prev)
  268.                this.prev = prev;
  269.          }
  270.          
  271.       }
  272.      
  273.       //--------------------------------
  274.       frm.domains.onchange = function () {
  275.      
  276.          var dm4 = this.form.domains4;
  277.          
  278.          for (var i=0; i<dm4.options.length; i++) {      
  279.             dm4.options[i].selected=false;
  280.          }
  281.          
  282.          for (var i=0; i< this.options.length; i++) {
  283.          
  284.             if  (this.options[i].selected) {
  285.                for (var j=0; j<dm4.options.length; j++) {
  286.                   if (dm4.options[j].text.split(".").pop()==this.options[i].text.slice(1)) {
  287.                      dm4.options[j].selected=true;
  288.                   }
  289.                }
  290.             }
  291.          }
  292.          
  293.       }
  294.       //---------------------------------
  295.       frm.email.onselect = function () {
  296.      
  297.          if (!this.ztest)
  298.             this.ztest = this.parentNode.appendChild(document.createElement('span'));
  299.            
  300.          this.ztest.style.color='green';
  301.          this.ztest.innerHTML='   '+this.value;
  302.       }
  303.       //---------------------------------
  304.        
  305.    }
  306.    
  307.    
  308.    //---------------------------------
  309.    draw_table = function(rows, cells) {
  310.       function draw_section(section, color) {
  311.          for (var i=0; i<rows; i++) {
  312.             var row=section.insertRow(i);
  313.            
  314.             for (var j=0; j<cells; j++) {
  315.                var cell=row.insertCell(j);
  316.                cell.innerHTML=i+'<sup>'+j+'</sup>';
  317.                cell.style['background-color']=color;
  318.             }
  319.          }
  320.       }
  321.      
  322.       var el8= el('DIV');
  323.       el8.className='info_service moveable';
  324.       el8.id='table_block';
  325.      
  326.       put_block_right(el8, gid('info_service_block'));
  327.      
  328.      
  329.       var tab= el('TABLE');
  330.       draw_section(tab.tBodies[0] && tab.tBodies[tab.tBodies.length-1] || tab,'#eee');   
  331.       draw_section(tab.createTHead(),'red');
  332.       draw_section(tab.createTFoot(),'#888');
  333.      
  334.       ap(tab,el8);
  335.       ap(el8);
  336.       fit_to_content.call(el8);
  337.    }
  338.    
  339.    //---------------------------------
  340.    function gogo(e) {
  341.    
  342.     /*   e = e || event;
  343.      
  344.       if (!e.which && e.button)
  345.          if (e.button & 1)
  346.             e.which=1;
  347.          else
  348.             if (e.button & 4)
  349.                e.which=2;
  350.              else
  351.                 if (e.button & 2)
  352.                    e.which = 3;*/
  353.                    
  354.       //alert(e.which);
  355.      
  356.       if (e.which==3) {
  357.          flyAlert(this);
  358.          
  359.          try {
  360.             e.preventDefault();
  361.          } catch(exc) {
  362.             e.returnValue=false;
  363.          }
  364.       }  
  365.    }
  366.    
  367.    //---------------------------------
  368.    function showElStruct(e) {
  369.    
  370.  
  371.    
  372.       var elprev= gid('infoel_div');
  373.      
  374.       if (elprev)
  375.          elprev.parentNode.removeChild(elprev);
  376.    
  377.       var inf =el('DIV');
  378.      
  379.       if (!window.global_num)
  380.          window.global_num=1;
  381.       else
  382.          window.global_num++;
  383.          
  384.       inf.id='infoel_div';
  385.       inf.style.position='absolute';
  386.       inf.style.border='solid 1px #888';
  387.       inf.style['background-color']='#eee';
  388.       ap(inf); 
  389.       inf.innerHTML=window.global_num;
  390.      
  391.       inf.style.width=Math.floor(window.innerWidth/3)+'px';
  392.       //inf.style.height=Math.floor(window.innerHeight/3)+'px';
  393.      
  394.       //inf.style.left=(Math.floor((document.documentElement.clientWidth || document.body.clientWidth)/2)-
  395.       //        Math.floor(parseInt(inf.style.width.slice(0,inf.style.width.indexOf('px'))/2))+'px');
  396.                
  397.       inf.style.top= (Math.floor((document.documentElement.clientHeight || document.body.clientHeight)/2) -
  398.                   Math.floor(inf.offsetHeight/2))+'px';  
  399.  
  400.       //-----------------------
  401.       inf.p = function(intext, inp) {
  402.      
  403.          var z = document.createElement('DIV');
  404.          z.style['margin-left']='40px';
  405.          var zz = document.createTextNode(intext);
  406.          z.appendChild(zz);
  407.          
  408.          inp.appendChild(z);
  409.       }
  410.      
  411.       //-----------------------
  412.       tree = function(node, insnode) {
  413.      
  414.          
  415.          inf.p('block: '+node.nodeName,insnode);
  416.          inf.p('type: '+node.nodeType,insnode);
  417.          try {inf.p('attribute id:' +node.getAttribute('id'),insnode)} catch (exc) {};
  418.          try {inf.p('attribute class:'+node.getAttribute('class'),insnode)} catch (exc) {};
  419.          
  420.          var els=node.childNodes;
  421.          inf.p('child nodes: '+els.length,insnode);
  422.          
  423.          var tmpnode=document.createElement('DIV');
  424.          tmpnode.style['margin-left']='40px';  
  425.          
  426.          
  427.          for (var i=0; i<els.length;i++) {
  428.             tree(els[i], tmpnode);
  429.          }
  430.          insnode.appendChild(tmpnode);
  431.       }
  432.      
  433.       var dt = new Date();
  434.       var dts = dt.getDay()+'.'+dt.getMonth()+'.'+dt.getFullYear()+' '+dt.getHours()+':'+dt.getMinutes()+':'+dt.getSeconds();
  435.       dts = 'current time: '+dts;
  436.      
  437.       inf.p(dts, inf);
  438.       //inf.p(document.getCookie,inf);
  439.      
  440.       tree (this, inf);
  441.      
  442.      
  443.       Ddrop.hook(inf);
  444.          
  445.    }
  446.    
  447.    //---------------------------------
  448.    function Square(z,coords,size,color) {
  449.    
  450.       z.style.position='absolute';
  451.      
  452.       z.style.left=coords.x+'px';
  453.       z.style.top=coords.y+'px';
  454.       z.style.width=size[0]+'px';
  455.       z.style.height=size[1]+'px';
  456.       z.style['background-color']=color;
  457.      
  458.      
  459.    }
  460.    //---------------------------------
  461.    
  462.    flyAlert= function(info) {
  463.      
  464.       if (!window.aim) {
  465.          window.aim = el('DIV');
  466.          Square (aim, {x: Math.floor(window.innerWidth)-200, y: 410}, [50,50],'red');
  467.          ap(aim);
  468.       }
  469.      
  470.       var flbl = info;
  471.       //alert (flbl.id);
  472.       flbl.style.position='absolute';
  473.       //Square (flbl,{x: 100, y: 200}, [200,200], '#ffa');
  474.      
  475.      
  476.       //ap(flbl);
  477.      
  478.      
  479.       setTimeout(flyCenter(flbl),10);
  480.      
  481.       function flyCenter(targ) {
  482.          
  483.             targ.style.opacity=1;
  484.             targ.style.filter='alpha(opacity=100)';
  485.             targ.style.left=targ.offsetLeft+'px';
  486.             targ.style.top=targ.offsetTop+'px';
  487.             targ.style.width=targ.offsetWidth+'px';
  488.             targ.style.height=targ.offsetHeight+'px';
  489.            
  490.             z= function() {
  491.            
  492.                   targ.style.left=
  493.                      Math.floor(parseInt(targ.style.left.slice(0,targ.style.left.indexOf('px')))+
  494.                      (-targ.offsetLeft+aim.offsetLeft)/50)+'px';
  495.                      
  496.                   targ.style.top =
  497.                    (parseInt(targ.style.top.slice(0,targ.style.top.indexOf('px')))-
  498.                      Math.floor(targ.offsetTop-aim.offsetTop)/50)+'px';
  499.                      
  500.                   targ.style.width =
  501.                       (parseInt(targ.style.width.slice(0,targ.style.width.indexOf('px')))-
  502.                      Math.floor(targ.offsetWidth-aim.offsetWidth)/50)+'px';
  503.                      
  504.                   targ.style.height=
  505.                       (parseInt(targ.style.height.slice(0,targ.style.height.indexOf('px')))-
  506.                      Math.floor(targ.offsetHeight-aim.offsetHeight)/50)+'px';
  507.                      
  508.                   targ.style.opacity=targ.style.opacity-0.001;
  509.                  
  510.                
  511.                   if  (Math.abs(targ.offsetLeft-aim.offsetLeft)>50)
  512.                      setTimeout(arguments.callee,10)
  513.                   else
  514.                      {
  515.                        
  516.                         targ.parentNode.removeChild(targ);
  517.                      }
  518.                  
  519.                  
  520.            };
  521.            return z;
  522.       }
  523.      
  524.    }
  525.    //---------------------------------
  526.    function setClicks() {
  527.       var els = document.getElementsByTagName('DIV');
  528.      
  529.      
  530.       for (var i=0; i<els.length; i++) {
  531.          if (els[i].className.match(/\s*info_service\s*/)) {
  532.             els[i].onclick=showElStruct;
  533.            
  534.             els[i].oncontextmenu = gogo        
  535.             //Ddrop.hook(els[i]);        
  536.          }
  537.          
  538.          if (els[i].className.search('moveable')!=-1)
  539.             Ddrop.hook(els[i]);
  540.       }
  541.    }
  542.    
  543.    //---------------------------------
  544.    ddrop = function() {
  545.    
  546.       _self = this;
  547.      
  548.       this.hook = function (el) {
  549.          el.onmousedown = this.mouseDown;
  550.          el.onmousemove = this.mouseMove;
  551.          el.onmouseup = this.mouseUp;
  552.          el.onmouseout = this.mouseOut;
  553.          
  554.       }
  555.      
  556.       //--------------------------
  557.       this.mouseDown = function(ev) {
  558.      
  559.          ev = ev || event;
  560.          var target = (this.className.search('parmove')!=-1) ? this.parentNode : this;
  561.          
  562.          target.pressed=true;
  563.          
  564.          target.xDiff = ev.clientX - target.offsetLeft;
  565.          target.yDiff = ev.clientY - target.offsetTop;
  566.          
  567.          target.style.cursor='pointer';
  568.          
  569.          try {
  570.             ev.preventDefault()
  571.          } catch (ex) {
  572.             ev.returnValue=false;
  573.          }
  574.       }
  575.       //--------------------------
  576.       this.mouseMove = function(ev) {
  577.      
  578.          ev = ev || event
  579.          
  580.          var target = (this.className.search('parmove')!=-1) ? this.parentNode : this;
  581.          
  582.          if (target.pressed) {
  583.            
  584.             target.style.left=(ev.clientX-target.xDiff)+'px';
  585.             target.style.top=(ev.clientY-target.yDiff)+'px';
  586.            
  587.          }
  588.       }
  589.       //--------------------------
  590.       this.mouseUp = function(ev) {
  591.      
  592.          var target = (this.className.search('parmove')!=-1) ? this.parentNode : this;
  593.          
  594.          target.pressed=false;
  595.          target.style.cursor='default';
  596.       }
  597.       //--------------------------
  598.       this.mouseOut = function(ev) {
  599.         // this.pressed=false;
  600.        
  601.         var target = (this.className.search('parmove')!=-1) ? this.parentNode : this;
  602.         //target.style.cursor='default';
  603.          
  604.       }
  605.      
  606.    }
  607.    
  608.    //---------------------------------
  609.    function draw_base_form() {
  610.    
  611.       function addButton(type, name,value, caption) {
  612.      
  613.          var p= el('P');
  614.      
  615.          var a=el('INPUT');
  616.          a.type=type;
  617.          a.name=name;
  618.          a.id=name;
  619.          a.value=value;
  620.          
  621.        
  622.          
  623.          ap(a,p);
  624.          if (caption) {
  625.             var txx=tx(caption);
  626.             p.insertBefore(txx,a);
  627.          }
  628.          ap(p,this);
  629.       }
  630.       //---------------------
  631.       var a=el('DIV');
  632.       a.className='info_service';
  633.       a.id='info_service_block';
  634.      
  635.       f=el('FORM');
  636.      
  637.      
  638.       ap(f,a);
  639.      
  640.       addButton.call(f,'TEXT','num_rows','3','input num rows');
  641.       addButton.call(f,'TEXT','num_cells','3','input num cells');
  642.       addButton.call(f, 'BUTTON','create_table', 'create table');    
  643.        addButton.call(f, 'BUTTON','create_test_form', 'create test form'); 
  644.       ap(a);
  645.       //--------------------------------
  646.       gid('create_table').onclick=
  647.          function () {
  648.                 draw_table(parseInt(f.num_rows.value), parseInt(f.num_cells.value));
  649.                 }
  650.                
  651.       //--------------------------------
  652.       draw_test_form();
  653.       //--------------------------------  
  654.       brr=setInterval(setClicks,1000);   
  655.    }
  656.    
  657.    window.onload = loadfunc;
  658.      
  659.      
  660. </script>
  661.    
  662. </head>
  663.  
  664. <body>
  665.  
  666. <div id="zfinf" class="info_service" style="z-index:50;background-color:white;">
  667.    <div class="parmove" id="movver" style="height:40px; background-color:red;color:white;"></div>
  668.    <form name="testform" action="#" method="post" enctype="application/x-www-form-urlencoded">
  669.       <fieldset>
  670.       <legend>mandatory information</legend>
  671.       <p><input type="text" name="username" id="username" size="30" />Input user name </p>
  672.       <p><input type="password" name="userpassword" id="userpassword" size="20" />Input password</p>
  673.       <p><input type="password" name="confirmpassword" id="confirmpassword" />Confirm password</p> 
  674.       <p><input type="text" name="email" id="email" size="20" />Input e-mail</p>     
  675.       </fieldset>
  676.      
  677.       <fieldset>
  678.       <legend>Input your gender</legend>
  679.       <p><input type="radio" name="gender" id="gender1" value="male" checked />Male</p>
  680.       <p><input type="radio" name="gender" id="gender2" value="female" />Female</p>
  681.       <p><input type="radio" name="gender" id="gender3" value="unidentified" disabled />unideintified</p>
  682.       </fieldset>
  683.      
  684.       <fieldset>
  685.       <legend>Input your interests</legend>
  686.       <p><input type="checkbox" name="interests[]" id="inter1" value="books" checked />books</p>
  687.       <p><input type="checkbox" name="interests[]" id="inter2" value="movies" />movies</p>
  688.       <p><input type="checkbox" name="interests[]" id="inter3" value="unidentified" />unidentified</p>
  689.       </fieldset>
  690.      
  691.       <fieldset>
  692.          <legend>Input your country</legend>
  693.          <select name="country" id="country">
  694.          
  695.             <option value="us" selected>US</option>        
  696.             <option value="uk">UK</option>
  697.             <option value="russia">Russia</option>
  698.             <option value="china" disabled>China</option>
  699.            
  700.          </select>
  701.       </fieldset>
  702.      
  703.       <fieldset>
  704.          <legend>Input your domains</legend>
  705.          <select name="domains" id="domains" size="5" multiple>
  706.             <option value="com" selected>.com</option>
  707.             <option value="us" selected>.us</option>
  708.             <option value="uk">.uk</option>
  709.             <option value="ru">.ru</option>
  710.             <option value="cn" disabled>.cn</option>
  711.          </select>
  712.       </fieldset>
  713.      
  714.       <p>Tell about you
  715.       <textarea name="comments" id="comments">
  716.          Some text...
  717.       </textarea></p>
  718.      
  719.       <p>Load userpic <input type="file" name="userpic" id="userpic" /></p>
  720.      
  721.       <input type="hidden" name="action" value="register" />
  722.       <p id="zzzfff">
  723.          <input type="submit" name="submit" value="register" />
  724.          <input type="reset" name="reset" value="reset" />
  725.          <input type="button" name="cancel" value="cancel" />
  726.       </p>
  727.    </form>
  728. </form>
  729.  
  730. </body>
  731. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement