Popup弹出框添加数据实现方法


Posted in Javascript onOctober 27, 2017

本文实例为大家分享了Popup弹出框添加数据的具体代码,供大家参考,具体内容如下

逻辑

窗口P1中显示一组数据,并提供一个添加按钮
点击按钮,弹出新的浏览器窗口P2,在其中添加一条数据并提交后,窗口P2自动关闭
新添加数据动态添加到窗口P1中并被选中
所需知识:JS BOM 窗口对象;JS自执行函数

实现

下面在Django中简单实现下,因为比较简单,路由和视图就写在一起了。

1.路由和视图部分

from django.conf.urls import url
from django.shortcuts import render


def p1(request):
 return render(request, 'p1.html')

def p2(request):
 if request.method == 'GET':
  return render(request, 'p2.html')

 elif request.method == 'POST':
  city = request.POST.get('city')
  print('执行数据保存操作...')
  return render(request, 'popup.html',{'city':city})

urlpatterns = [
 url(r'^p1.html/', p1),
 url(r'^p2.html/', p2),
]

2.访问视图p1,返回页面p1.html:

<head>
 <meta charset="UTF-8">
 <title>p1页面</title>
</head>

<body>
<h2>p1页面</h2>

<select id="cityChoose">
 <option>上海</option>
 <option>北京</option>
</select>
<input type="button" value="添加" onclick="popupFunc();"/>

<script>
 popupFunc = function () {
  window.open('/p2.html/', 'p2', "status=1, height:300, width:300, toolbar=0, resizeable=1")
  //open(url, name, 窗口参数),注意name不能重名
 };

 callback = function (city) {
  var opt = document.createElement('option');
  opt.innerText = city;
  opt.setAttribute('selected', 'selected');
  var selEle = document.getElementById('cityChoose');
  selEle.appendChild(opt);
 }
</script>
</body>

说明:

1、点击添加按钮,执行popupFunc:访问'/p2.html/',并在新窗口中打开页面p2.html
2、定义回调函数callback:它接收一个参数city,将其动态添加到下拉选项中并设置为选中状态。

3.弹出窗口中显示p2.html如下:

<head>
 <meta charset="UTF-8">
 <title>p2页面</title>
</head>
<body>
<h2>p2页面</h2>

<form method="post">
 {% csrf_token %}
 <input type="text" name="city">
 <input type="submit" value="提交">
</form>
</body>

说明:这里没有指定form表单的action=url参数,用户输入数据后,默认提交到当前地址,即'/p2.html/',提交到视图p2

4.视图p2收到提交的数据后,传入模板并返回页面popup.html:

<head>
 <meta charset="UTF-8">
 <title>正在返回</title>
</head>
<body>
<script>

 (function (city) {
  window.opener.callback(city);
  window.close();
 })("{{ city }}")

</script>
</body>

说明:

  • 这里定义了JS自执行函数:它调用打开弹出窗口的窗口中的回调函数(即P1中的callback),并把用户输入数据作为参数传入;关闭自身。
  • 如果p2视图返回错误信息,也可以在popup.html中作显示(略)。
  • 自执行函数可以参考 JavaScript 自执行函数和 jQuery扩展方法

效果图:

Popup弹出框添加数据实现方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript 面向对象(一)(共有方法,私有方法,特权方法)
May 23 Javascript
javascript eval(func())使用示例
Dec 05 Javascript
jquery $(document).ready()和window.onload的区别浅析
Feb 04 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
Aug 01 Javascript
微信小程序 框架详解及实例应用
Sep 26 Javascript
javascript函数的四种调用模式
Jan 08 Javascript
微信小程序实现皮肤功能(夜间模式)
Jun 18 Javascript
js中DOM事件绑定分析
Mar 18 Javascript
Express的HTTP重定向到HTTPS的方法
Jun 06 Javascript
Vue开发实现吸顶效果的示例代码
Aug 21 Javascript
对vux点击事件的优化详解
Aug 28 Javascript
JS实现打砖块游戏
Feb 14 Javascript
JavaScript模拟实现封装的三种方式及写法区别
Oct 27 #Javascript
使用vue的v-for生成table并给table加上序号的实例代码
Oct 27 #Javascript
javascript浏览器用户代理检测脚本实现方法
Oct 27 #Javascript
vue中的event bus非父子组件通信解析
Oct 27 #Javascript
基于javascript中的typeof和类型判断(详解)
Oct 27 #Javascript
webpack配置之后端渲染详解
Oct 26 #Javascript
jquery使用iscorll实现上拉、下拉加载刷新
Oct 26 #jQuery
You might like
一个简单的PHP&amp;MYSQL留言板源码
2020/07/19 PHP
php 高效率写法 推荐
2010/02/21 PHP
PHP正确解析UTF-8字符串技巧应用
2012/11/07 PHP
PHP实现动态创建XML文档的方法
2018/03/30 PHP
javascript(jquery)利用函数修改全局变量的代码
2009/11/02 Javascript
关于使用 jBox 对话框的提交不能弹出问题解决方法
2012/11/07 Javascript
jquery实现滑动图片自己测试的例子
2013/11/05 Javascript
JQuery做的一个简单的点灯游戏分享
2014/07/16 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
2016/02/16 Javascript
利用jquery实现下拉框的禁用与启用
2016/12/07 Javascript
vue.js评论发布信息可插入QQ表情功能
2017/08/08 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
2020/05/19 Javascript
Vue解决echart在element的tab切换时显示不正确问题
2020/08/03 Javascript
[51:06]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第二场 1月26日
2021/03/11 DOTA
初步理解Python进程的信号通讯
2015/04/09 Python
Python实现基本线性数据结构
2016/08/22 Python
Python heapq使用详解及实例代码
2017/01/25 Python
python将字典内容存入mysql实例代码
2018/01/18 Python
django 使用全局搜索功能的实例详解
2019/07/18 Python
python实现音乐播放和下载小程序功能
2020/04/26 Python
为什么相对PHP黑python的更少
2020/06/21 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
推荐10个CSS3 制作的创意下拉菜单效果
2014/02/11 HTML / CSS
几个解决兼容IE6\7\8不支持html5标签的几个方法
2013/01/07 HTML / CSS
公司董事长职责
2013/12/12 职场文书
小学家长会邀请函
2014/01/23 职场文书
小学防溺水制度
2014/01/29 职场文书
中专生毕业个人鉴定
2014/02/26 职场文书
大学生学期自我鉴定
2014/03/19 职场文书
抽奖活动主持词
2014/03/31 职场文书
2016年社区综治宣传月活动总结
2016/03/16 职场文书
表扬稿表扬信的格式及范文
2019/06/24 职场文书
《黑岩★★射手 DAWN FALL》BD发售宣传CM公开
2022/04/04 日漫
Python内置类型集合set和frozenset的使用详解
2022/04/26 Python
Oracle中DBLink的详细介绍
2022/04/29 Oracle