微信小程序实现文本输入弹窗

场景

用户进入界面弹出输入窗口,需要用户输入内容,如果取消则跳转到指定界面,重新进入还会弹出窗口,只有输入正确内容才能正式进入此界面

实现

wxml

<view class="container">
  <view wx:if="{{!completed}}">
    <view class='toast-box'>
      <view class='toastbg'></view>
      <view class='showToast'>
        <view class='toast-title'>
          <text>确认底金?</text>
        </view>
        <view class='toast-main'>
          <view class='toast-input'>
            <input type='number' placeholder='请输入符合您的保底金额~' focus="true" bindinput='getUserInput'></input>
          </view>
        </view>
        <view class='toast-button'>
          <view class='cancel'>
            <button bindtap="cancelSelected">取消</button>
          </view>
          <view class='success'>
            <button bindtap="successSelected">确定</button>
          </view>
        </view>
      </view>
    </view>
  </view>
</view>

wxss

.container {
  width: 100%;
  min-height: 100vh;
  background-color: #101419;
}

.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;
}

.cancel, .success {
  width: 50%;
}

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

.success button {
  color: #1d2228;
  width: 100%;
  background-color: white;
  border-radius: 0px;
  border-bottom-right-radius: 16rpx;
}

js

Page({

  /**
   * 页面的初始数据
   */
  data: {
    completed: false,  // 弹窗控制
    deposit: 0  // 存储用户输入的内容
  },

  // 获取用户输入的内容
  getUserInput(event) {
    const money = event.detail.value || event.detail.text
    this.setData({deposit: money})
  },

  // 取消按钮触发事件
  cancelSelected(event) {
    wx.switchTab({
      url: '/pages/optional/optional',
    })
  },

  // 确定按钮触发事件
  successSelected(event) {
    if (!(/(^[0-9]*$)/.test(this.data.deposit))) {
      wx.showToast({
        title: '只能输入纯数字',
        icon: 'none',
        duration: 2000
      })
    } else {
      this.setData({completed: true})
    }
  },

})

效果图

在这里插入图片描述

  • 1
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值