繁体   English   中英

如何使用表单创建弹出窗口?

[英]How to create a popup window with a form?

这是我在下面的代码片段中的登录表单。 我需要的是通过单击菜单中的“ 登录”链接在弹出窗口中打开此表单。 我通过互联网搜索,但没有找到相关的答案。 我知道我应该使用JavaScript,但我不知道如何制作正确的代码。 我应该使用普通的JS还是jQuery? 为什么? 谢谢。

 body { background: #a7a7a7; } .login__form { width: 320px; padding: 20px; background: #fff; border-radius: 5px; border-top: 5px solid #ff4e50; margin: 0 auto; } .login__form fieldset{ border: 0; } .login__form h3 { text-align: center; color: #666; font-size: 18px; text-transform: uppercase; margin-top: 0; margin-bottom: 20px; font-weight: bold; padding: 0; margin: 0; margin-bottom: 12px; } .login__form input { width: 100%; height: 42px; box-sizing: border-box; border-radius: 5px; border: 1px solid #ccc; margin-bottom: 20px; font-size: 14px; font-family: Montserrat; padding: 0 20px 0 50px; outline: none; } .login__form input#username { background: #fff url('http://i.imgur.com/u0XmBmv.png') 20px top no-repeat; background-size: 16px 80px; } .login__form input#username:focus { background: #fff url('http://i.imgur.com/u0XmBmv.png') 20px bottom no-repeat; background-size: 16px 80px; } .login__form input#password { background: #fff url('http://i.imgur.com/Qf83FTt.png') 20px top no-repeat; background-size: 16px 80px; } .login__form input#password:focus { background: #fff url('http://i.imgur.com/Qf83FTt.png') 20px bottom no-repeat; background-size: 16px 80px; } .login__form input:active, .login__form input:focus { border: 1px solid #ff4e50; } .login__form input#button { width: 100%; height: 40px; background: #ff4e50; box-sizing: border-box; border-radius: 5px; border: 1px solid #e15960; color: #fff; font-weight: bold; text-transform: uppercase; font-size: 14px; font-family: Montserrat; outline: none; cursor: pointer; margin: 0; padding: 0; } .login__form input#button:hover { opacity: 0.7; filter: alpha(opacity=70); } 
 <form name="login" class="login__form"> <h3>Login</h3> <fieldset> <input type="text" value="" placeholder="Username" id="username"> <input type="password" value="" placeholder="Password" id="password"> <input type="submit" value="Submit" id="button"> </fieldset> </form> 

您可以使用jquery UI

  $(function() { $("#dialog").dialog({ autoOpen: false, show: { effect: "blind", duration: 1000 }, hide: { effect: "explode", duration: 1000 } }); $("#opener").click(function() { $("#dialog").dialog("open"); }); }); 
 body { background: #a7a7a7; } .login__form { /*width: 320px;*/ padding: 20px; background: #fff; border-radius: 5px; border-top: 5px solid #ff4e50; margin: 0 auto; } .login__form fieldset { border: 0; } .login__form h3 { text-align: center; color: #666; font-size: 18px; text-transform: uppercase; margin-top: 0; margin-bottom: 20px; font-weight: bold; padding: 0; margin: 0; margin-bottom: 12px; } .login__form input { width: 100%; height: 42px; box-sizing: border-box; border-radius: 5px; border: 1px solid #ccc; margin-bottom: 20px; font-size: 14px; font-family: Montserrat; padding: 0 20px 0 50px; outline: none; } .login__form input#username { background: #fff url('http://i.imgur.com/u0XmBmv.png') 20px top no-repeat; background-size: 16px 80px; } .login__form input#username:focus { background: #fff url('http://i.imgur.com/u0XmBmv.png') 20px bottom no-repeat; background-size: 16px 80px; } .login__form input#password { background: #fff url('http://i.imgur.com/Qf83FTt.png') 20px top no-repeat; background-size: 16px 80px; } .login__form input#password:focus { background: #fff url('http://i.imgur.com/Qf83FTt.png') 20px bottom no-repeat; background-size: 16px 80px; } .login__form input:active, .login__form input:focus { border: 1px solid #ff4e50; } .login__form input#button { width: 100%; height: 40px; background: #ff4e50; box-sizing: border-box; border-radius: 5px; border: 1px solid #e15960; color: #fff; font-weight: bold; text-transform: uppercase; font-size: 14px; font-family: Montserrat; outline: none; cursor: pointer; margin: 0; padding: 0; } .login__form input#button:hover { opacity: 0.7; filter: alpha(opacity=70); } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css"> <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script> <div id="dialog"> <form name="login" class="login__form"> <h3>Login</h3> <fieldset> <input type="text" value="" placeholder="Username" id="username"> <input type="password" value="" placeholder="Password" id="password"> <input type="submit" value="Submit" id="button"> </fieldset> </form> </div> <button id="opener">Log In</button> 

当然,您可以修改此代码以符合您的需求。

嗨现在用于简单的jquery代码就像这样

 $(document).ready(function(){ $('.login__form').hide(); $('.click').on('click', function(){ $('.login__form').show(); }); $('.closePopUP').on('click', function(){ $('.login__form').hide(); }) }); 
 body { background: #a7a7a7; } .closePopUP{position: absolute; right: 8px; top: 7px; cursor: pointer; border: solid 2px red; border-radius: 50%; font-size: 14px; font-family: arial; padding: 2px 6px;} .login__form { width: 320px; padding: 20px; background: #fff; border-radius: 5px; border-top: 5px solid #ff4e50; margin: 0 auto;position:relative; } .login__form fieldset{ border: 0; } .login__form h3 { text-align: center; color: #666; font-size: 18px; text-transform: uppercase; margin-top: 0; margin-bottom: 20px; font-weight: bold; padding: 0; margin: 0; margin-bottom: 12px; } .login__form input { width: 100%; height: 42px; box-sizing: border-box; border-radius: 5px; border: 1px solid #ccc; margin-bottom: 20px; font-size: 14px; font-family: Montserrat; padding: 0 20px 0 50px; outline: none; } .login__form input#username { background: #fff url('http://i.imgur.com/u0XmBmv.png') 20px top no-repeat; background-size: 16px 80px; } .login__form input#username:focus { background: #fff url('http://i.imgur.com/u0XmBmv.png') 20px bottom no-repeat; background-size: 16px 80px; } .login__form input#password { background: #fff url('http://i.imgur.com/Qf83FTt.png') 20px top no-repeat; background-size: 16px 80px; } .login__form input#password:focus { background: #fff url('http://i.imgur.com/Qf83FTt.png') 20px bottom no-repeat; background-size: 16px 80px; } .login__form input:active, .login__form input:focus { border: 1px solid #ff4e50; } .login__form input#button { width: 100%; height: 40px; background: #ff4e50; box-sizing: border-box; border-radius: 5px; border: 1px solid #e15960; color: #fff; font-weight: bold; text-transform: uppercase; font-size: 14px; font-family: Montserrat; outline: none; cursor: pointer; margin: 0; padding: 0; } .login__form input#button:hover { opacity: 0.7; filter: alpha(opacity=70); } .click{float:left;cursor:pointer;} 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <button class="click">login popup</button> <form name="login" class="login__form"> <span class="closePopUP">X</span> <h3>Login</h3> <fieldset> <input type="text" value="" placeholder="Username" id="username"> <input type="password" value="" placeholder="Password" id="password"> <input type="submit" value="Submit" id="button"> </fieldset> </form> 

纯粹的js解决方案。 您还应该使用表单包装元素的绝对位置。

 (function() { var loginLink = document.getElementById('login-button'); loginLink.addEventListener('click', function() { var loginForm = document.getElementById('login-form'); loginForm.style.display = 'block'; }); })(); 
 body { background: #a7a7a7; } .login__form { width: 320px; padding: 20px; background: #fff; border-radius: 5px; position: absolute; border-top: 5px solid #ff4e50; margin: 0 auto; left: 50%; margin-left: -160px; display: none; } .login__form fieldset { border: 0; } .login__form h3 { text-align: center; color: #666; font-size: 18px; text-transform: uppercase; margin-top: 0; margin-bottom: 20px; font-weight: bold; padding: 0; margin: 0; margin-bottom: 12px; } .login__form input { width: 100%; height: 42px; box-sizing: border-box; border-radius: 5px; border: 1px solid #ccc; margin-bottom: 20px; font-size: 14px; font-family: Montserrat; padding: 0 20px 0 50px; outline: none; } .login__form input#username { background: #fff url('http://i.imgur.com/u0XmBmv.png') 20px top no-repeat; background-size: 16px 80px; } .login__form input#username:focus { background: #fff url('http://i.imgur.com/u0XmBmv.png') 20px bottom no-repeat; background-size: 16px 80px; } .login__form input#password { background: #fff url('http://i.imgur.com/Qf83FTt.png') 20px top no-repeat; background-size: 16px 80px; } .login__form input#password:focus { background: #fff url('http://i.imgur.com/Qf83FTt.png') 20px bottom no-repeat; background-size: 16px 80px; } .login__form input:active, .login__form input:focus { border: 1px solid #ff4e50; } .login__form input#button { width: 100%; height: 40px; background: #ff4e50; box-sizing: border-box; border-radius: 5px; border: 1px solid #e15960; color: #fff; font-weight: bold; text-transform: uppercase; font-size: 14px; font-family: Montserrat; outline: none; cursor: pointer; margin: 0; padding: 0; } .login__form input#button:hover { opacity: 0.7; filter: alpha(opacity=70); } 
 <a href="#" id="login-button">Login</a> <form name="login" class="login__form" id="login-form"> <h3>Login</h3> <fieldset> <input type="text" value="" placeholder="Username" id="username"> <input type="password" value="" placeholder="Password" id="password"> <input type="submit" value="Submit" id="button"> </fieldset> </form> 

您可以使用jQuery UI Dialog

看看这些例子

单击按钮(#create-user)触发对话框

$( "#create-user" ).button().on( "click", function() {
      dialog.dialog( "open" );
    });

您可以将html表单放到页面上的#dialog-form div中(查看jQuery-UI中的其他示例)对话框本身将使用以下代码段进行初始化:

dialog = $( "#dialog-form" ).dialog({
  autoOpen: false,
  height: 300,
  width: 350,
  modal: true,
  buttons: {
    "Create an account": addUser,
    Cancel: function() {
      dialog.dialog( "close" );
    }
  },
  close: function() {
    form[ 0 ].reset();
    allFields.removeClass( "ui-state-error" );
  }
});

注意:要使用脚本,您必须嵌入jQuery-UI-Library。 有一些js / css只有弹出窗口,但我更喜欢jQuery解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM