這篇文章主要介紹如何解決Django中checkbox復(fù)選框的傳值問(wèn)題,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
成都創(chuàng)新互聯(lián)公司是一家專(zhuān)業(yè)提供徽縣企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、H5頁(yè)面制作、小程序制作等業(yè)務(wù)。10年已為徽縣眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。Django 中,html 頁(yè)面通過(guò) form 標(biāo)簽來(lái)傳遞表單數(shù)據(jù)。
對(duì)于復(fù)選框信息,即 checkbox 類(lèi)型,點(diǎn)擊 submit 后,數(shù)據(jù)將提交至 view 中的函數(shù)。
我們通過(guò)request.POST.get() 函數(shù)來(lái)獲取來(lái)自 html 頁(yè)面的值,但是該函數(shù)只能 get 到選中的最后一個(gè)值。
因此想要傳遞選中的多個(gè)值,需要用 request.POST.getlist() 函數(shù)
該函數(shù)返回一個(gè)列表,可通過(guò)迭代來(lái)獲取列表中每一項(xiàng)的值。
補(bǔ)充知識(shí):解決checkbox復(fù)選框選中傳值,不選中不傳值的方案
解決checkbox復(fù)選框選中傳值,不選中不傳值的方案
問(wèn)題描述:
一個(gè)form表單中的結(jié)構(gòu)是這樣的:
則頁(yè)面顯示結(jié)果是:
如上填寫(xiě)數(shù)據(jù),經(jīng)過(guò)序列化后的數(shù)據(jù)是:
[ {"id":"1","infoType":"11","infoName":"名稱(chēng)1","fileIsOpen":"o"}, {"id":"2","infoType":"12","infoName":"名稱(chēng)2","fileIsOpen":"n"} ]
從數(shù)據(jù)中明顯看書(shū)fileIsOpen字段的checkbox復(fù)選框選中則傳值是"o",未被選中則傳值是"n",其中這是錯(cuò)誤的數(shù)據(jù),因?yàn)楸贿x中傳的值是on,也就是說(shuō)checkbox復(fù)選框選中傳值,不選中不傳值。那么怎么解決不選中也傳值的問(wèn)題呢?
解決方案:
我們可以設(shè)置隱藏域來(lái)代替checkbox復(fù)選框傳遞數(shù)據(jù),具體的頁(yè)面修改如下:
checkbox復(fù)選框?qū)?yīng)的點(diǎn)擊事件:
再次輸入相同的數(shù)據(jù)傳遞的數(shù)據(jù)是:
[ {"id":"1","infoType":"11","infoName":"名稱(chēng)1","fileIsOpen":"0"}, {"id":"2","infoType":"22","infoName":"名稱(chēng)2","fileIsOpen":"1"} ]
從數(shù)據(jù)可以這次傳遞的數(shù)據(jù)是正確的
上述方案存在的問(wèn)題
如果頁(yè)面什么不傳遞,
則傳遞的數(shù)據(jù)是這樣的:
[ {"fileIsOpen":"0"}, {"fileIsOpen":"0"} ]
因此后臺(tái)在接受到數(shù)據(jù)后需要判斷List集合中的對(duì)象的必選要素,如果不包含必傳要素,就算傳入上述數(shù)據(jù)也是不錄入數(shù)據(jù)庫(kù)的數(shù)據(jù),則可以舍去這些數(shù)據(jù)。
以上是“如何解決Django中checkbox復(fù)選框的傳值問(wèn)題”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
文章名稱(chēng):如何解決Django中checkbox復(fù)選框的傳值問(wèn)題-創(chuàng)新互聯(lián)
文章位置:http://www.chinadenli.net/article24/cceeje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、網(wǎng)站改版、定制網(wǎng)站、微信公眾號(hào)、搜索引擎優(yōu)化、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容