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 判断是否存在函数的方法
Jan 03 Javascript
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
Jan 24 Javascript
JS通过相同的name进行表格求和代码
Aug 18 Javascript
2014年50个程序员最适用的免费JQuery插件
Dec 15 Javascript
JS获取各种宽度、高度的简单介绍
Dec 19 Javascript
Bootstrap每天必学之标签与徽章
Nov 27 Javascript
JS/jQ实现免费获取手机验证码倒计时效果
Jun 13 Javascript
jQuery表单设置值的方法
Jun 30 jQuery
微信小程序自定义多选事件的实现代码
May 17 Javascript
关于TypeScript模块导入的那些事
Jun 12 Javascript
使用rollup打包JS的方法步骤
Dec 05 Javascript
Node.js对MongoDB进行增删改查操作的实例代码
Apr 18 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
利用static实现表格的颜色隔行显示
2006/10/09 PHP
php shell超强免杀、减少体积工具实现代码
2012/10/16 PHP
手把手教你打印出PDF(关于fpdf的简单应用)
2013/06/25 PHP
[原创]PHP简单开启curl的方法(测试可行)
2016/01/11 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
js中将字符串转换成json的三种方式
2011/01/12 Javascript
jQuery中将函数赋值给变量的调用方法
2012/03/23 Javascript
JS中的prototype与面向对象的实例讲解
2013/05/22 Javascript
jquery弹出框的用法示例(一)
2013/08/26 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
2013/10/11 Javascript
jquery实现滑动特效代码
2015/08/10 Javascript
JavaScript学习笔记之数组随机排序
2016/03/23 Javascript
JS添加或修改控件的样式(Class)实现方法
2016/10/15 Javascript
扩展jquery easyui tree的搜索树节点方法(推荐)
2016/10/28 Javascript
jQuery实现验证码功能
2017/03/17 Javascript
分享Bootstrap简单表格、表单、登录页面
2017/08/04 Javascript
vue+Java后端进行调试时解决跨域问题的方式
2017/10/19 Javascript
微信小程序实现简单input正则表达式验证功能示例
2017/11/30 Javascript
Vue press 支持图片放大功能的实例代码
2018/11/09 Javascript
vue实现的封装全局filter并统一管理操作示例
2020/02/02 Javascript
卸载vue2.0并升级vue_cli3.0的实例讲解
2020/02/16 Javascript
小程序自定义圆形进度条
2020/11/17 Javascript
Python生成验证码实例
2014/08/21 Python
Python算法应用实战之队列详解
2017/02/04 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
2019/02/21 Python
Python GUI编程 文本弹窗的实例
2019/06/11 Python
使用turtle绘制五角星、分形树
2019/10/06 Python
线程安全及Python中的GIL原理分析
2019/10/29 Python
使用Pandas的Series方法绘制图像教程
2019/12/04 Python
使用Python求解带约束的最优化问题详解
2020/02/11 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
简单整理HTML5的基本特性和语法
2016/02/18 HTML / CSS
详解HTML5 window.postMessage与跨域
2017/05/11 HTML / CSS
美国气象仪器、花园装饰和墙壁艺术商店:Wind & Weather
2019/05/29 全球购物
党员个人总结范文
2015/02/14 职场文书
详解Js模块化的作用原理和方案
2021/04/29 Javascript