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 相关文章推荐
js压缩利器
Feb 20 Javascript
JavaScript arguments 多参传值函数
Oct 24 Javascript
js获得鼠标的坐标值的方法
Mar 13 Javascript
jQuery聚合函数实例
May 21 Javascript
js实现继承的5种方式
Dec 01 Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
Apr 29 Javascript
JS实现的驼峰式和连字符式转换功能分析
Dec 21 Javascript
原生JS仿QQ阅读点击展开、收起效果
Mar 08 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
Mar 13 Javascript
Node.js assert断言原理与用法分析
Jan 04 Javascript
vue-cli+axios实现文件上传下载功能(下载接收后台返回文件流)
May 10 Javascript
JavaScript 闭包的使用场景
Sep 17 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
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
ubuntu下编译安装xcache for php5.3 的具体操作步骤
2013/06/18 PHP
静态html文件执行php语句的方法(推荐)
2016/11/21 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
PHP利用Mysql锁解决高并发的方法
2018/09/04 PHP
PHP校验15位和18位身份证号的类封装
2018/11/07 PHP
PHP基础之输出缓冲区基本概念、原理分析
2019/06/19 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2020/01/22 PHP
splice slice区别
2006/10/09 Javascript
用javascript连接access数据库的方法
2006/11/17 Javascript
extjs 的权限问题 要求控制的对象是 菜单,按钮,URL
2010/03/09 Javascript
Jquery实现带动画效果的经典二级导航菜单
2013/03/22 Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
2015/03/14 Javascript
js + css实现标签内容切换功能(实例讲解)
2017/10/09 Javascript
Vue官网todoMVC示例代码
2018/01/29 Javascript
Vue使用高德地图搭建实时公交应用功能(地图 + 附近站点+线路详情 + 输入提示+换乘详情)
2018/05/16 Javascript
vue实现PC端录音功能的实例代码
2019/06/05 Javascript
JavaScript实现五子棋游戏的方法详解
2019/07/08 Javascript
浅谈JS中几种轻松处理'this'指向方式
2019/09/16 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
在vue中created、mounted等方法使用小结
2020/07/21 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
[02:43]DOTA2英雄基础教程 半人马战行者
2014/01/13 DOTA
全面了解Nginx, WSGI, Flask之间的关系
2018/01/09 Python
解决pandas read_csv 读取中文列标题文件报错的问题
2018/06/15 Python
Pandas 按索引合并数据集的方法
2018/11/15 Python
python将图片转base64,实现前端显示
2020/01/09 Python
python爬虫请求头设置代码
2020/07/28 Python
美国保健品专家:Life Extension
2018/05/04 全球购物
中学生评语大全
2014/04/18 职场文书
党委领导班子整改方案
2014/09/30 职场文书
2015年采购工作总结
2015/04/10 职场文书
拾金不昧通报表扬范文
2015/05/05 职场文书
观看《杨善洲》宣传教育片心得体会
2016/01/23 职场文书
标准版个人借条怎么写?以及什么是借条?
2019/08/28 职场文书
JavaScript ES6的函数拓展
2022/01/18 Javascript