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 相关文章推荐
IE不出现Flash激活框的小发现的js实现方法
Sep 07 Javascript
javascript 禁止复制网页
Jun 11 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
Jul 05 Javascript
js对象的复制继承实例
Jan 10 Javascript
微信小程序 保留小数(toFixed)详细介绍
Nov 16 Javascript
详解JavaScript模块化开发
Dec 04 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
Dec 27 Javascript
JavaScript+CSS相册特效实例代码
Sep 07 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
Aug 10 Javascript
解决微信小程序调用moveToLocation失效问题【超简单】
Apr 12 Javascript
如何使用Javascript中的this关键字
May 28 Javascript
addEventListener()和removeEventListener()追加事件和删除追加事件
Dec 04 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 mysql 判断update之后是否更新了的方法
2012/01/10 PHP
解析isset与is_null的区别
2013/08/09 PHP
php var_export与var_dump 输出的不同
2013/08/09 PHP
PHP获取昨天、今天及明天日期的方法
2016/02/03 PHP
javascript 网页跳转的方法
2008/12/24 Javascript
怎么选择Javascript框架(Javascript Framework)
2013/11/22 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
JavaScript字符串对象charAt方法入门实例(用于取得指定位置的字符)
2014/10/17 Javascript
JavaScript阻止回车提交表单的方法
2015/12/30 Javascript
js调用webservice构造SOAP进行身份验证
2016/04/27 Javascript
仿Angular Bootstrap TimePicker创建分钟数-秒数的输入控件
2016/07/01 Javascript
正则表达式,替换所有HTML标签的简单实例
2016/11/28 Javascript
深入理解javascript函数参数与闭包
2016/12/12 Javascript
js鼠标跟随运动效果
2017/03/11 Javascript
js实现抽奖效果
2017/03/27 Javascript
vue移动端裁剪图片结合插件Cropper的使用实例代码
2017/07/10 Javascript
微信小程序页面生命周期详解
2018/01/31 Javascript
如何在js代码中消灭for循环实例详解
2018/07/29 Javascript
JavaScript设计模式之缓存代理模式原理与简单用法示例
2018/08/07 Javascript
python实现博客文章爬虫示例
2014/02/26 Python
python实现支持目录FTP上传下载文件的方法
2015/06/03 Python
在Django的session中使用User对象的方法
2015/07/23 Python
在windows系统中实现python3安装lxml
2016/03/23 Python
python实现微信自动回复功能
2018/04/11 Python
python 信息同时输出到控制台与文件的实例讲解
2018/05/11 Python
python顺序的读取文件夹下名称有序的文件方法
2018/07/11 Python
python3.6使用pickle序列化class的方法
2018/10/22 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
使用python将excel数据导入数据库过程详解
2019/08/27 Python
python的time模块和datetime模块实例解析
2019/11/29 Python
python重要函数eval多种用法解析
2020/01/14 Python
如何反序的迭代一个序列?how do I iterate over a sequence in reverse order
2012/02/04 面试题
演讲稿格式
2014/04/30 职场文书
医药销售自我评价200字
2014/09/11 职场文书
展览会邀请函
2015/02/02 职场文书
pytorch加载预训练模型与自己模型不匹配的解决方案
2021/05/13 Python