fozero
fozero
  • 发布:2020-07-08 15:00
  • 更新:2020-09-28 10:51
  • 阅读:2851

【报Bug】input输入尾部带X身份证号码提交后,在部分机型获取丢失X字母,无法获取到用户输入的身份证最后的X字母

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 10.14.5 (18F203)

浏览器平台: 微信内置浏览器

浏览器版本: "ua":"Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16C101 MicroMessenger/7.0.13(0x17000d2a) NetType/4G Language/zh_CN"

项目创建方式: CLI

CLI版本号: @vue/cli@4.4.1

App下载地址或H5⽹址: http://ymt.liugongdao.com.cn:58081/front/ticket-sell-wx/#/

示例代码:
  1. cartList
    data() {  
    return {  
      cartList:[{  
        goodsNo: item.goodNo,  
        goodName: item.goodName,  
        userList: [  
          {  
            name: '',  
            idNum: '',  
          },  
        ],  
     }]  
    }  
    }
  2. 购物车列表及游客信息input
    <view class="goods-list-title">商品列表</view>  
      <view class="goods-list">  
        <uni-swipe-action>  
          <uni-collapse @change="visitorsChange">  
            <view class="goods-item" v-for="(item, index) in cartList" :key="index">  
              <uni-swipe-action-item :options="options" @click="onClick(item)" @change="change"  
                :disabled="isSwipeActiondisabled">  
                <view class="goods-wrapper">  
                  <view class="goods-title">  
                    <text>{{ item.goodName }}</text>  
                  </view>  
                </view>  
              </uni-swipe-action-item>  
              <uni-collapse-item title="显示游客信息" :open="isCollapseShow">  
                <view class="tourist-info-form">  
                  <view class="tourist-info-item" v-for="(item2, index2) in item.userList" :key="index2">  
                    <view class="form-title">  
                      <view>{{ item.tkclassName }}{{ index2 + 1 }}</view>  
                      <!-- <view @click="delTicketUserInfo(item.goodsNo, item2)"  
                        >删除</view  
                      >-->  
                    </view>  
                    <view class="field-item">  
                      <view class="field-label">  
                        <text class="required-tip">*</text>游客姓名  
                      </view>  
                      <view class="field-input">  
                        <input type="text" maxlength="8" placeholder="请填写证件上的姓名" v-model="item2.name" />  
                      </view>  
                    </view>  
                    <view class="field-item">  
                      <view class="field-label">  
                        <text class="required-tip">*</text>身份证号  
                      </view>  
                      <view class="field-input">  
                        <input type="text" maxlength="20" placeholder="请填写证件号" v-model="item2.idNum" />  
                      </view>  
                    </view>  
                  </view>  
                </view>  
              </uni-collapse-item>  
            </view>  
          </uni-collapse>  
        </uni-swipe-action>  
      </view>

操作步骤:

1.微信浏览器访问 http://ymt.liugongdao.com.cn:58081/front/ticket-sell-wx/#/
2.选择一个商品,添加购物车
3.进入购物车选择商品预约时段
4.填写上面丢失x用户身份证号码 37012119640519771X ,姓名随便填
5.提交订单(不支付即可)

预期结果:

订单提交成功并跳转发起微信支付

实际结果:

部分机型,出现提交订单时获取不到用户带x身份证号输入的值(37012119640519771X),最后X字母丢失,只能获取到37012119640519771数字部分

用户ua信息: "ua":"Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16C101 MicroMessenger/7.0.13(0x17000d2a) NetType/4G Language/zh_CN"

bug描述:

input输入尾部带X身份证号码提交后,在部分机型获取丢失X字母,无法获取到用户输入的身份证最后的X字母

input输入代码

 <uni-collapse-item title="显示游客信息" :open="isCollapseShow">  
                <view class="tourist-info-form">  
                  <view class="tourist-info-item" v-for="(item2, index2) in item.userList" :key="index2">  
                    <view class="form-title">  
                      <view>{{ item.tkclassName }}{{ index2 + 1 }}</view>  
                    </view>  
                    <view class="field-item">  
                      <view class="field-label">  
                        <text class="required-tip">*</text>游客姓名  
                      </view>  
                      <view class="field-input">  
                        <input type="text" maxlength="8" placeholder="请填写证件上的姓名" v-model="item2.name" />  
                      </view>  
                    </view>  
                    <view class="field-item">  
                      <view class="field-label">  
                        <text class="required-tip">*</text>身份证号  
                      </view>  
                      <view class="field-input">  
                        <input type="text" maxlength="20" placeholder="请填写证件号" v-model="item2.idNum" />  
                      </view>  
                    </view>  
                  </view>  
                </view>  
              </uni-collapse-item>
2020-07-08 15:00 负责人:无 分享
已邀请:

最佳回复

DCloud_UNI_GSQ

DCloud_UNI_GSQ

HBuilderX alpha 2.9.0+ 已修复

fozero

fozero (作者)

@DCloud_heavensoft @DCloud_UNI_WYQ @DCloud_UNI_HDX @DCloud_UNI_HT @DCloud_UNI_家兴 线上环境的bug,辛苦帮忙看看这个问题,非常感谢

jxtian

jxtian

你怎么校验身份的? 那部分代码呢

  • fozero (作者)

    createPruductOrder() {

    const goodsList = this.cartList.map((item) => {

    return {

    goodNo: item.goodsNo,

    userList: item.userList

    }

    })

    }

    提交订单的时候拿到goodsList请求接口,问题是在前端,提交给后端的时候用户输入的身份证号X就没有拿到

    2020-07-08 15:34

  • jxtian

    回复 fozero: 没有复现,你先console一下你双向绑定拿到的值对不对,不太可能出错

    2020-07-08 16:31

  • fozero (作者)

    回复 jxtian: 我手机以及本地环境也是没有问题的,没有复现,线上部分用户出现的bug,问题用户浏览器ua信息: "ua":"Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16C101 MicroMessenger/7.0.13(0x17000d2a) NetType/4G Language/zh_CN"

    2020-07-08 16:52

  • JSail

    这个问题我也遇到,确定是v-model没有把input内容绑定到data,应该和键盘事件相关。复现操作:iOS系统下使用系统默认拼音输入法,输入身份证最后一位“X”时,按键盘右上角“完成”结束输入,不按回车或空格键,这时data中绑定的值是缺失“X”的

    2020-07-22 12:23

  • Evergreen

    回复 JSail: 字母x小写会出现这样的问题,大写就正常,后来有解决吗

    2020-07-24 18:20

  • 010101

    回复 JSail: 请问这个现在有解决方案吗

    2020-09-27 17:30

  • 嗨哆嚒

    回复 Evergreen: 我正好相反,大写丢失

    2021-03-11 17:07

orange123456

orange123456 - 80后IT男

这种问题通常是先从后端找问题,基本上input不会有这种问题,比如post的值是否有x,如果有那就是后端的问题

  • fozero (作者)

    只有部分机型会出现这个问题,所以能猜测到时兼容性问题,接口日志显示获取不到X,另外错误日志看到的也是丢失X的 ,上面传了张错误日志信息,可以看看

    2020-07-08 16:23

Evergreen

Evergreen

你好,最后有解决吗,遇到同样的问题了

  • fozero (作者)

    没有啊,你也是兼容性问题?

    2020-07-26 00:18

  • Evergreen

    回复 fozero: 安卓机切换输入法的时候会掉X,console打印也有,到后台就没了,所以在input的基础上,加了blur

    2020-07-27 10:38

  • Evergreen

    回复 fozero: 看你要不要试下

    2020-07-27 10:43

  • fozero (作者)

    回复 Evergreen: 你解决了吗

    2020-08-01 19:45

  • fozero (作者)

    回复 Evergreen: 加了blur?是失去焦点的时候重新赋值么,没太明白

    2020-08-02 10:29

jxtian

jxtian

iOS系统下使用系统默认拼音输入法,有这个问题,确认bug。

  • 3***@qq.com

    请问该BUG解决了吗?

    2020-09-02 17:41

  • 010101

    请问这个bug解决了吗

    2020-09-27 17:29

j***@live.cn

j***@live.cn

这个bug解决了吗?

该问题目前已经被锁定, 无法添加新回复