微信小程式動態加入內容的方法:首先新增一個for,循環view;然後input綁定一個輸入事件,並且取得裝input的view區塊的索引;最後透過索引值來修改陣列中的值即可。
微信小程式動態加入內容的方法:
1. wx:for 迴圈view,新增一個, wx:for的內容就增加1個,那麼迴圈的內容是用數字來迴圈還是陣列呢?
2. input是循環出來的,所以不可能給不同的input綁定不同的bindInput 事件,那麼只有綁定一個輸入事件,而且所有的值必須是一個數組的話,就必須要獲取到裝input的view區塊的索引,然後透過索引值來修改數組中的值。 。
3. 刪除的話,如果循環的內容是數字,那麼就只有數字減一,最終刪除的只有最後一個。那麼循環的內容就只能是數組了。只要取得到目前需要刪除的索引值,然後刪除循環內容對應的值就完成了。
相關學習推薦:微信小程式開發教學
#先來看看效果:
##wxml:
<view class='add' bindtap='addInput'>增加</view> <view class='box' wx:for='{{array}}' wx:key=''> <view class='del' bindtap='delInput' data-idx='{{index}}'>删除</view> <input type='text' class='b-ipt' placeholder='请输入' data-idx='{{index}}' value='{{inputVal[index]}}' bindinput='getInputVal'/> </view>
.add{ display: inline-block; line-height: 30px; padding: 0 12px; background: skyblue; } .box{ margin-top: 10px; clear: both; overflow: hidden; padding: 0 15px; } .b-ipt{ overflow: hidden; border: 1px solid #ccc; } .del{ width: 40px; float: right; margin-left: 10px; }
data: { array:[0],//默认显示一个 inputVal:[]//所有input的内容 }, //获取input的值 getInputVal:function(e){ var nowIdx=e.currentTarget.dataset.idx;//获取当前索引 var val=e.detail.value;//获取输入的值 var oldVal=this.data.inputVal; oldVal[nowIdx]=val;//修改对应索引值的内容 this.setData({ inputVal:oldVal }) }, //添加input addInput:function(){ var old=this.data.array; old.push(1);//这里不管push什么,只要数组长度增加1就行 this.setData({ array: old }) }, //删除input delInput:function(e){ var nowidx=e.currentTarget.dataset.idx;//当前索引 var oldInputVal=this.data.inputVal;//所有的input值 var oldarr=this.data.array;//循环内容 oldarr.splice(nowidx,1); //删除当前索引的内容,这样就能删除view了 oldInputVal.splice(nowidx,1);//view删除了对应的input值也要删掉 if (oldarr.length < 1) { oldarr = [0] //如果循环内容长度为0即删完了,必须要留一个默认的。这里oldarr只要是数组并且长度为1,里面的值随便是什么 } this.setData({ array:oldarr, inputVal: oldInputVal }) }
相關學習推薦:
以上是微信小程式如何動態添加內容的詳細內容。更多資訊請關注PHP中文網其他相關文章!