2014-02-11 110 views
0

所以我是新来jquery,我试图有一个弹出窗体。目标是当用户点击“创建新用户”时,将弹出一个表单,他们可以填写那里的信息。我有麻烦。我感觉好像我的所有设置都正确,但仍然无法正常工作。jquery弹出不能正常工作

 <!doctype html> 
     <html class="no-js" lang="en"> 
      <head> 
      <meta charset="utf-8" /> 
      <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 

      <title>Ocean Services</title> 
      <link href='http://fonts.googleapis.com/css?family=Alegreya+Sans+SC' rel='stylesheet' type='text/css'> 

      <title>Bliss Salon</title> 

      <link rel="stylesheet" href="css/foundation.css" /> 
      <link rel="stylesheet" href="css/main.css" /> 
      <script src="js/modernizr.js"></script> 
       <script src="js/jquery-1.10.2.js"></script> 
       <script src="js/jquery-ui.js"></script> 


      <script> 
       $(function() { 
       var name = $("#name"), 
       email = $("#email"), 
       password = $("#password"), 
       allFields = $([]).add(name).add(email).add(password), 
       tips = $(".validateTips"); 
       function updateTips(t) { 
       tips 
       .text(t) 
       .addClass("ui-state-highlight"); 
       setTimeout(function() { 
       tips.removeClass("ui-state-highlight", 1500); 
       }, 500); 
       } 
       function checkLength(o, n, min, max) { 
       if (o.val().length > max || o.val().length < min) { 
       o.addClass("ui-state-error"); 
       updateTips("Length of " + n + " must be between " + 
       min + " and " + max + "."); 
       return false; 
       } else { 
       return true; 
       } 
       } 
       function checkRegexp(o, regexp, n) { 
       if (!(regexp.test(o.val()))) { 
       o.addClass("ui-state-error"); 
       updateTips(n); 
       return false; 
       } else { 
       return true; 
       } 
       } 
       $("#dialog-form").dialog({ 
       autoOpen: false, 
       height: 300, 
       width: 350, 
       modal: true, 
       buttons: { 
       "Create an account": function() { 
       var bValid = true; 
       allFields.removeClass("ui-state-error"); 
       bValid = bValid && checkLength(name, "username", 3, 16); 
       bValid = bValid && checkLength(email, "email", 6, 80); 
       bValid = bValid && checkLength(password, "password", 5, 16); 
       bValid = bValid && checkRegexp(name, /^[a-z]([0-9a-z_])+$/i, "Username may consist of a-z, 0-9, underscores, begin with a letter."); 
       // From jquery.validate.js (by joern), contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/ 
       bValid = bValid && checkRegexp(email, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "eg. [email protected]"); 
       bValid = bValid && checkRegexp(password, /^([0-9a-zA-Z])+$/, "Password field only allow : a-z 0-9"); 
       if (bValid) { 
       $("#users tbody").append("<tr>" + 
       "<td>" + name.val() + "</td>" + 
       "<td>" + email.val() + "</td>" + 
       "<td>" + password.val() + "</td>" + 
       "</tr>"); 
       $(this).dialog("close"); 
       } 
       }, 
       Cancel: function() { 
       $(this).dialog("close"); 
       } 
       }, 
       close: function() { 
       allFields.val("").removeClass("ui-state-error"); 
       } 
       }); 
       $("#create-user") 
       .button() 
       .click(function() { 
       $("#dialog-form").dialog("open"); 
       }); 
       }); 
       </script> 
      </head> 
      <body> 

      <div class="row"> 
       <div class="large-6 columns"> 
        <h1><img class="logo" src="images/trans_logo.png" /></h1> 
       </div> 
       <div class="large-12 columns"> 
        <ul class="right button-group"> 

         <li><a href="#" class="nav" >Log-In</a></li> 
         <li><a href="#" class="nav">Register</a></li> 
        </ul> 
       </div> 
      </div> 

      <!-- End Header and Nav --> 

      <!-- First Band (Slider) --> 

      <div class="row"> 
       <div class="large-12 columns"> 
        <div data-orbit id="slider"> 
         <a href="#"> <img src="images/image1.jpeg" /></a> 
         <img src="images/image2.jpeg" /> 
        </div> 

        <hr /> 
       </div> 
      </div> 

      <!-- Three-up Content Blocks --> 

      <div class="row"> 
       <div class="large-6 columns"> 
        <img src="http://placehold.it/500x300&text=[img]" /> 
        <h4>This is a content section.</h4> 
        <p>Bacon ipsum dolor sit amet nulla ham qui sint exercitation eiusmod commodo, chuck duis velit. Aute in reprehenderit, dolore aliqua non est magna in labore pig pork biltong. Eiusmod swine spare ribs reprehenderit culpa. Boudin aliqua adipisicing rump corned beef.</p> 
       </div> 


       <div class="large-6 columns"> 
        <img src="http://placehold.it/500x300&text=[img]" /> 
        <h4>This is a content section.</h4> 
        <p>Bacon ipsum dolor sit amet nulla ham qui sint exercitation eiusmod commodo, chuck duis velit. Aute in reprehenderit, dolore aliqua non est magna in labore pig pork biltong. Eiusmod swine spare ribs reprehenderit culpa. Boudin aliqua adipisicing rump corned beef.</p> 
        <button id="create-user">Create new user</button> 
       </div> 

      </div> 




      <!-- Footer --> 

      <footer class="row"> 
       <div class="large-12 columns"> 
        <hr /> 
        <div class="row"> 
         <div class="large-6 columns"> 
          <p>© Copyright Bliss Salon. All Rights Reserved.</p> 
         </div> 

        </div> 
       </div> 
      </footer> 


      <script src="js/foundation.min.js"></script> 
      <script> 
       $(document).foundation({ 
        orbit: { 
         timer_speed:4500, 
         timer: true, 
         bullets:false, 
         animation:'fade', 
         animation_speed: 1500 


        } 


       }); 
      </script> 
      </body> 
     </html> 
+0

你可以缩小你的代码只有相关的部分? –

回答

0

DEMO HERE

你忘了在你的HTML你的对话框的div:

<div id="dialog-form" title="Basic dialog"> 
    <p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p> 
</div> 

你把你的div with id dialog-form在你的HTML,它应该工作之后。