1. 程式人生 > >微信小程式自制提示框(具有輸入文字功能)

微信小程式自制提示框(具有輸入文字功能)

微信小程式自帶的API中的頁面互動功能,雖然提示功能非常全面,但是所有的互動API中是沒有可以自己在提示框中輸入文字的功能,那麼現在我們來自己做這樣的一個提示框(可以帶有輸入功能),在提示框輸入完內容之後,點選確定,可以將文字內容返回,點選取消則可以回到之前的狀態。

(在這裡,主頁面的佈局可以根據每個人的想法來佈局,這裡展示的css之後展示提示框部分的)


1、首先開啟微信開發者工具,建立一個程式碼模板,那麼我們這個提示框就是寫在這個頁面上。

    這裡我們主頁面叫做index

2、在基本頁面中寫上一個姓名的文字,當前姓名用<text>{{stuName}}</text>表示,然後為一個button按鈕,再在js檔案中,建立相應的點選事件以及stuName的資訊。這樣,一個原始頁面就寫好了。

下面我們開始彈出框頁面的製作

<view class='toast-box' hidden='{{!ifName}}'>
        <view class='toastbg'></view>
        <view class='showToast'>
            <view class='toast-title'>
                <text>修改姓名</text>
            </view>
            <view class='toast-main'>
                <view class='toast-input'>
                    <input placeholder='請輸入姓名' bindinput='setValue' data-name='stuEidtName'></input>
                </view>
            </view>
            <view class='toast-button'>
                <view class='button1'>
                    <button catchtap='cancel'>取消</button>
                </view>
                <view class='button2'>
                    <button catchtap='confirm'>確定</button>
                </view>
            </view>
        </view>
    </view>

3、我們可以發現,點選按鈕後彈出輸入框,如果點選除取消和確定之外的地方,是不會有反應的。為了做到這個功能,我們用一個絕對位置的渲染層(toastbg),覆蓋住整個頁面,並且如果你的頁面長度沒有滾動的話,請輸入min—height:100vh,如果頁面發生滾動,請把長度控制在height:100%即可看到整個頁面都被覆蓋。並且這個覆蓋的頁面要表現為透明,opacity:0.2,即可

4、bindinput為寫文字時所觸發的事件,data-name為文字資料所儲存的地方,在js中我們可以把這個資料打印出來,會發現我們所輸入的文字資訊。

以下為css的程式碼

.toast-box {
    width: 100%;
    height: 100%;
    opacity: 1;
    position: fixed;
    top: 0px;
    left: 0px;
}

.toastbg {
    opacity: 0.2;
    background-color: black;
    position: absolute;
    width: 100%;
    min-height: 100vh;
}

.showToast {
    position: absolute;
    opacity: 1;
    width: 70%;
    margin-left: 15%;
    margin-top: 40%;
}

.toast-title {
    padding-left: 5%;
    background-color: #2196f3;
    color: white;
    padding-top: 2vh;
    padding-bottom: 2vh;
    border-top-right-radius: 16rpx;
    border-top-left-radius: 16rpx;
}

.toast-main {
    padding-top: 2vh;
    padding-bottom: 2vh;
    background-color: white;
    text-align: center;
}

.toast-input {
    margin-left: 5%;
    margin-right: 5%;
    border: 1px solid #ddd;
    padding-left: 2vh;
    padding-right: 2vh;
    padding-top: 1vh;
    padding-bottom: 1vh;
}

.toast-button {
    display: flex;
}

.button1 {
    width: 50%;
}

.button2 {
    width: 50%;
}

.button1 button {
    width: 100%;
    background-color: white;
    color: red;
    border-radius: 0px;
    border-bottom-left-radius: 16rpx;
}

.button2 button{
    width: 100%;
    background-color: white;
    color: black;
    border-radius: 0px;
    border-bottom-right-radius: 16rpx;
}

.picker {
    padding-top: 1vh;
    padding-bottom: 1vh;
}

我們可以根據自己的喜歡,對提示框的樣式進行改變

5、編寫js程式碼,我們需要實現以下一些基本功能(點擊出現彈窗,取消不改變資料值,確定進行判斷資料值,若為空則不能改變,否則可以改變,並且主頁面上的內容要變為相應改變後的內容)

6、給最外層的彈窗附上hidden(如圖所示),為這個值初始為false,點選按鈕後觸發事件,改false為true,這樣即可點擊出現彈窗。

7、為取消按鈕附上點選事件,與hidden的部分剛好相反即可。

8、為書寫文字繫結事件,上述程式碼中命名為setValue,這個函式我們傳入一個event進去,將其列印,我們可以發現在其的detail中有我們剛剛所書寫的內容,我們將這個值,傳給js中data一個屬性,這裡我們命名為edit。

9、為確定繫結事件,用this.data.edit將這個值進行判斷,若為空,我們用wx.showToast提示使用者資訊沒有填寫完整,並且頁面不會改變。若不為空,則我們setData一下我們的stuName為這個edit的值,並且重新把hidden的屬性值改為false。

10、返回到初始頁面我們就可以看到我們自己做得一個提示框,並且具有修改值的功能

相關推薦

程式自制提示具有輸入文字功能

微信小程式自帶的API中的頁面互動功能,雖然提示功能非常全面,但是所有的互動API中是沒有可以自己在提示框中輸入文字的功能,那麼現在我們來自己做這樣的一個提示框(可以帶有輸入功能),在提示框輸入完內容之後,點選確定,可以將文字內容返回,點選取消則可以回到之前的狀態。(在這裡,

程式-訊息提示

微信小程式開發中toast也是重要的訊息提示方式. 提示框: wx.showToast(OBJECT) 顯示訊息提示框 OBJECT引數說明: 示例程式碼: ? 1 2 3 4 5 wx.showTo

程式-訊息提示例項

做Android的時候對toast是很熟悉的.微信小程式開發中toast也是重要的訊息提示方式. 提示框: wx.showToast(OBJECT) 顯示訊息提示框 OBJECT引數說明: 示例程式碼: wx.showToast({ title: '成功', icon

程式提示 showToast 和 showLoading

使用者操作得到即時反饋,這是很好的使用者體驗,所以我們經常會使用提示框來反饋一些簡簡訊息。提示框顯示後,通常自己關閉,對使用者的打擾降到最低。下面簡單對比一下常用兩個顯示對話方塊方式: showToast 和 showLoading wx.showTo

程式中使用Echarts可非同步請求資料

在微信小程式中使用Echarts,主要分為以下幾步: 1.首先要下載ecomfe/echarts-for-weixin專案,下載後將ec-canvas資料夾複製到小程式專案中,假設放在根目錄下utils資料夾中。 2.在要實現echarts圖的頁面引入echarts.js檔案,例如要在i

程式 獲取元素高度獲取元素節點資訊

微信小程式 獲取元素高度(獲取元素節點資訊)   如果高度要px單位的話: let query = wx.createSelectorQuery(); query.select('.content').boundingClientRect(rect=>{ let he

程式-form表單-獲取使用者輸入文字的值

微信小程式-form表單-獲取使用者輸入文字框的值 <input name='formnickname' class="textarea" placeholder="{{geren.nickname}}" value='{{geren.nickname}}' bi

程式 —— 考勤管理Demo前後端及資料庫

原始碼地址: 簡要介紹 這是一個微信小程式的考勤管理Demo,包括前後端及資料庫等內容。如有錯誤或建議,歡迎指出。 前端: 後端: 平臺: Node.js 資料庫: 初始賬戶:admin,初始密碼:ad

程式開發框架——WXSS

    WXSS語言決定了小程式頁面的各個元素在視覺上的展示,WXSS與CSS即為相試的、為了適合微信小程式開發WXSS對CSS進行相應的修改。     width:用來設定元素'寬度' / height:用來設定元素'高度 '/

程式下拉

微信小程式元件裡沒有下拉框,正好要用到,記下來以後參考 wxml程式碼 <view class='top'> <view class='top-text'> 選擇接收班級</view> <!-- 下拉框 --> <view

程式按鈕去邊框button去邊框

微信小程式中的button元件預設自帶邊框,而且我們常規的給button設定border: none;或者border: 0;並不能去掉邊框。 無論是內聯樣式還是外聯樣式表都不好使。這是因為微信小程式的button元件的邊框並不在button上,而是在button::after上

程式——下拉重新整理分頁

1、先定義兩個變數:   // 分頁,載入 hasMoreData:true, globalPage:0,  2、函式處理:   3、與後臺互動:  1)、在獲取列表的方法裡面,將下面兩個引數以及其他所需

程式單選自定義賦值

這裡我們應用之前一篇寫過的彈框效果 , 哈哈哈 ,是不是很萬精油;單選框我們運用偽元素自定義,不使用圖片 , 這個例子可以運用到很多情況; 知識點: 1、理解wx:if作用 2、理解三元運算子的使用 3、利用偽元素after/before自定義內容 4、定時器setTimeout的使用 照例

程式入門學習筆記——阿里雲伺服器PHP MYSQL Apache配置

持續更新 持續學習 感謝原文大佬連結 https://www.linuxidc.com/Linux/2017-08/146220.htm 筆者在阿里雲上買了輕量應用伺服器 學生認證通過以下 便宜的 選擇的CentOS 7.3 64位  https://promot

程式入門學習筆記

入門級的跳轉格式: wx.redirectTo():不能返回上一層頁面 wx.navigateTo():用於頁面的跳轉 以上兩個不能跳轉於"tabBar" 因此跳轉"tabBar": wx.switchTab 感謝大佬的教程解答 了我的問題 以下附上原文連結 作者

程式 - 彈出鍵盤遮擋住輸入

在開發微信小程式的時候遇到,輸入使用者名稱或者手機號以及地址,手機鍵盤調起來,會把輸入框遮擋。 如圖: 以上兩張圖是自己工作中遇到的,此處不要著急,一個屬性幫你搞定。 cursor-spacing:指定游標與鍵盤的距離,單位px或rpx,預設為px。取 input 距離底部的距離和 cursor

程式下拉之二維陣列或物件

js檔案 Page({ data:{ //戶型 這是一個本地的物件,然後繫結到頁面上 pic_array: [ { id: 13, name: ‘1室1廳1衛‘ }, { id: 14, name: ‘1室2廳1衛‘ }, { id:

程式使用第三方庫第三方js問題

原文:https://blog.csdn.net/u012421719/article/details/56676801 比如很多人會有這樣的問題: 小程式怎樣引用第三方js呢?

程式開發文件4

微信小程式網路API 發起請求 上傳、下載 Websocket 檔案 資料快取 微信小程式媒體API 圖片 錄音 音訊播放控制 音樂播放控制 背景音訊播放管理 wx.createAudioContext(audioId) 視訊 wx.createVideoContext(videoId)

程式二維碼JAVA

前言 最近在做小程式相關的專案,之前也在網上找過很多資料,遇到不少坑,和大家分享一下成果。 簡介 小程式獲取二維碼有官網三種介面: POST https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access