文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

微信小程序实现表单验证提交功能

2024-04-02 19:55

关注

本文实例为大家分享了微信小程序实现表单验证提交的具体代码,供大家参考,具体内容如下

效果图:

说明:点击一键预约提交表单时我们需要验证一些必填项以及它们的格式。微信小程序表单验证跟vue的input双向绑定不同,微信小程序只能通过button按钮提交form表单,然后通过监听表单提交方法去获取提交的数据。

<!-- 表单 -->
<view class="forms">
  <view class="container">
    <image class="bg" src="../../images/formBg.png" mode="aspectFill"></image>
    <view class="title">
      <text class="text">我家装修需要花多少钱?</text>
      <text class="text">免费快速获取预算方案</text>
    </view>
    <form class="" catchsubmit="submitFn">
      <view class="item">
        <text class="text">*</text>
        <picker class="" mode="region" bindchange="bindRegionChange" value="{{region}}">
          <input type="text" name="city" value="{{city}}" placeholder="请选择房屋所在城市" placeholder-class="input-placeholder" />
        </picker>
      </view>
      <view class="item">
        <text class="text"></text>
        <input type="text" name="area" value="{{area}}" class="weui-input" placeholder="请输入房屋面积" placeholder-class="input-placeholder" />
      </view>
      <view class="item">
        <text class="text"></text>
        <input type="text" name="name" value="{{name}}" class="weui-input" placeholder="请输入您的姓名" placeholder-class="input-placeholder" />
      </view>
      <view class="item">
        <text class="text">*</text>
        <input type="text" name="phone" value="{{phone}}" class="weui-input" placeholder="请输入联系电话" placeholder-class="input-placeholder" />
      </view>
      <button class="btn" formType="submit">
        <text>一键预约</text>
        <!-- <image class="img" src="../../images/headglobal.png" mode="aspectFill"></image> -->
      </button>
      <view class="desc">装企提供免费上门量房服务、出3套方案供您对比</view>
    </form>
  </view>
</view>
.forms {
    padding: 0 30rpx;

    .container {
        position: relative;
        width: 100%;
        padding: 20rpx;
    }

    .bg {
        position: absolute;
        left: 0;
        right: 0;
        top: 0;
        bottom: 0;
        width: 100%;
        height: 100%;
        z-index: -1;
    }

    .title {
        text-align: center;
        margin-bottom: 40rpx;

        .text {
            display: block;
            font-size: 48rpx;
            color: #000;
        }
    }

    .item {
        height: 65rpx;
        background-color: #fff;
        border: solid 1rpx #dddddd;
        border-radius: 10rpx;
        padding: 0 10rpx;
        margin-bottom: 20rpx;
        display: flex;
        align-items: center;

        .text {
            color: #ff0000;
            display: inline-block;
            width: 30rpx;
            font-size: 24rpx;
        }

        .weui-input {
            font-size: 28rpx;
        }

        .input-placeholder {
            color: #999;
        }
    }

    .btn {
        width: 100%;
        height: 75rpx;
        background-color: #00a0e9;
        box-shadow: 3rpx 4prx 13rpx 0rpx rgba(93, 200, 249, 0.59);
        border-radius: 6rpx;
        text-align: center;
        line-height: 75rpx;
        margin: 30rpx 0;
        position: relative;

        text {
            color: #fff;
        }
    }

    .desc {
        text-align: center;
        color: #999;
        font-size: 26rpx;
    }    .img {
        position: absolute;
        width: 31rpx;
        height: 47rpx;
        right: 80rpx;
        top: 40rpx;
    }
}
data:{
    city:'',
    area: "",
    name: "",
    phone: "",
    region: ["广东省", "广州市", "海珠区"],
},
// 表单提交
submitFn: function (e) {
  console.log(e);
  let that = this;
  if (e.detail.value.city == "") {
    wx.showToast({
      title: "请选择房屋所在城市",
      icon: "none",
    });

    return false;
  }

  if (e.detail.value.phone == "") {
    wx.showToast({
      title: "请输入联系电话",
      icon: "none",
    });

    return false;
  }
  // 验证电话格式
  if (!/^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/.test(e.detail.value.phone)) {
    wx.showToast({
      title: "手机号码有误",
      duration: 2000,
      icon: "none",
    });

    return false;
  }
},
// 选择城市
bindRegionChange: function (e) {
  console.log("picker发送选择改变,携带值为", e.detail.value);
  this.setData({
    city: e.detail.value,
  });
},

官网:表单组件form

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯