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 相关文章推荐
关于jquery性能最佳实践的讨论,与求教
Mar 30 Javascript
图片动画横条广告带上下滚动的JS代码
Oct 25 Javascript
24款热门实用的jQuery插件推荐
Dec 24 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
Aug 06 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
Oct 30 Javascript
jQuery实现带分组数据的Table表头排序实例分析
Nov 24 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
Jan 02 Javascript
在Vue项目中引入腾讯验证码服务的教程
Apr 03 Javascript
微信小程序实现分享到朋友圈功能
Jul 19 Javascript
vue.js中导出Excel表格的案例分析
Jun 11 Javascript
原生js基于canvas实现一个简单的前端截图工具代码实例
Sep 10 Javascript
基于layui内置模块(element常用元素的操作)
Sep 20 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
在smarty中调用php内置函数的方法
2013/02/07 PHP
PHP微信开发之二维码生成类
2015/06/26 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
改变隐藏的input中value值的方法
2014/03/19 Javascript
JavaScript利用正则表达式去除日期中的“-”
2014/07/01 Javascript
JavaScript闭包函数访问外部变量的方法
2014/08/27 Javascript
node.js中的fs.unlinkSync方法使用说明
2014/12/15 Javascript
JS实现简洁、全兼容的拖动层实例
2015/05/13 Javascript
jquery计算鼠标和指定元素之间距离的方法
2015/06/26 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
2015/12/03 Javascript
详解JavaScript节流函数中的Throttle
2016/07/16 Javascript
原生JS实现匀速图片轮播动画
2016/10/18 Javascript
Vue概念及常见命令介绍(1)
2016/12/08 Javascript
Jquery Easyui搜索框组件SearchBox使用详解(19)
2016/12/17 Javascript
微信小程序(三):网络请求
2017/01/13 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
2017/04/22 Javascript
关于Vue背景图打包之后访问路径错误问题的解决
2017/11/03 Javascript
js中Array对象的常用遍历方法详解
2019/01/17 Javascript
js实现延迟加载的几种方法详解
2019/01/19 Javascript
Python实现过滤单个Android程序日志脚本分享
2015/01/16 Python
python简单文本处理的方法
2015/07/10 Python
Python元字符的用法实例解析
2018/01/17 Python
对python中的高效迭代器函数详解
2018/10/18 Python
提升python处理速度原理及方法实例
2019/12/25 Python
Python 文件数据读写的具体实现
2020/01/24 Python
浅谈pandas dataframe对除数是零的处理
2020/07/20 Python
基于Python实现体育彩票选号器功能代码实例
2020/09/16 Python
肯尼亚网上商城:Kilimall
2016/08/20 全球购物
民生工程实施方案
2014/03/22 职场文书
优秀家长事迹材料
2014/05/17 职场文书
教师暑期培训感言
2014/08/15 职场文书
建设工程授权委托书
2014/09/22 职场文书
材料采购员岗位职责
2015/04/03 职场文书
观看《信仰》心得体会
2016/01/15 职场文书
PostgreSQL怎么创建分区表详解
2022/06/25 PostgreSQL
MySQL数据管理操作示例讲解
2022/12/24 MySQL