日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

简单实现Popup弹出框添加数据

發布時間:2025/3/17 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简单实现Popup弹出框添加数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

邏輯

  • 窗口P1中顯示一組數據,并提供一個添加按鈕
  • 點擊按鈕,彈出新的瀏覽器窗口P2,在其中添加一條數據并提交后,窗口P2自動關閉
  • 新添加數據動態添加到窗口P1中并被選中
  • 所需知識:JS BOM 窗口對象;JS自執行函數
  • 實現

    下面在Django中簡單實現下,因為比較簡單,路由和視圖就寫在一起了。

  • 路由和視圖部分

    from django.conf.urls import url from django.shortcuts import renderdef 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), ]


  • 訪問視圖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>

    說明:

  • 點擊添加按鈕,執行popupFunc:訪問'/p2.html/',并在新窗口中打開頁面p2.html
  • 定義回調函數callback:它接收一個參數city,將其動態添加到下拉選項中并設置為選中狀態。

  • 彈出窗口中顯示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


  • 視圖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弹出框添加数据的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。