Jquery弹出不正常

时间:2014-02-11 20:15:28

标签: 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. ui@jquery.com" );
              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>

1 个答案:

答案 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>

在你的html中输入div with id dialog-form后,它应该可以正常工作。