当前位置: 首页 > news >正文

网站改版建议重庆做优化的网络公司

网站改版建议,重庆做优化的网络公司,织梦网站教程,建设网站叶少泉vue实现表单输入框数字类型校验功能 1. 样式代码 <el-form-item label"订单总价"><el-input size"small" v-model"form.totalPrice" placeholder"请输入订单总价 正整数或者2位数小数" input"check(form.totalPric…

vue实现表单输入框数字类型校验功能

1. 样式代码

<el-form-item label="订单总价"><el-input   size="small" v-model="form.totalPrice" placeholder="请输入订单总价 正整数或者2位数小数"  @input="check(form.totalPrice)"></el-input>
</el-form-item>

在HTML表单里使用 input事件来监听输入值的变化,一单数据变化,就触发校验规则。输入框输入的类型 都是字符串类型,要把字符串转换成数字类型。

在HTML中,无论是原生的input元素还是Element UI的el-input组件,当用户在输入框中输入数字时,这些输入值默认会被当作字符串类型处理。

2 methods 正则表达式校验输入的值

//正则表达式校验订单价格输入的值
check(value) {const Regex = /^\d+(\.\d{1,2})?$/;if (!Regex.test(value)) {this.$notify.warning("订单总价请输入正整数或者2位数小数")}
},

但是 监听校验 只是对输入值校验,如果用户不听提示,执意提交非数字类型的,还是能提交到后台,导致后台因为字段类型不同而报错。

所以input事件校验可以不要。

报错信息如下:

JSON parse error: Cannot deserialize value of type `java.lang.Double` from String "十": not a valid Double value; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.lang.Double` from String "十": not a valid Double value

3 提交订单时 再校验 如果校验不通过不允许提交表单

3.1 使用vue方法校验

在methods 提交表单的函数,在调后端接口前做校验

save(){
let b = this.checkDataType(Number(this.form.totalPrice));if (!b) {this.$notify.warning("订单总价输入的不是数字,请输入数字")return;}
//下面调接口提交表单 省略
}

下面的方法复制到methods 用于校验一个变量是否是数字类型,如果是非数字会返回false,如果是小数或者整数返回true

//校验订单总价输入的类型
checkDataType(variable) {if (typeof variable === 'number') {return Number.isInteger(variable) || Number.isFinite(variable) && variable % 1 !== 0;} else {return false;}
},

3.2 再次使用正则表达式校验

所以input事件校验可以不要,但是提交时的校验一定要有,这样才能保证前端传到后台的数据跟实体类的字段类型一致的。

 save(){let b = this.check(this.form.totalPrice);if (!b) {this.$notify.warning("订单总价输入的不是数字,请输入数字")return;}
}
//正则表达式校验订单价格输入的值
check(value) {const Regex = /^\d+(\.\d{1,2})?$/;if (Regex.test(value)) {return true} else {return false}
},

其他方法:

1.v-model.number

elmentUI 提供的数字字符串转换为数字类型,以下是一个使用Element UI的el-input组件并转换输入值为数字类型的示例:

html<template><el-form><el-form-item label="输入框"><el-input v-model.number="inputValue" @input="handleInput"></el-input></el-form-item></el-form>
</template>

但是,使用方式时,无法输入小数点。可能是我方式不对,铁们,可以尝试一下这种,这种可以的话是比价简单的。

2.InputNumber 计数器

在Element UI中,el-input-number组件是一个专门用于输入和显示数字的计数器。它提供了对数字输入的内置验证和控制,包括限制输入范围、步长等。

:precision=“2” precision 的值必须是一个非负整数,并且不能小于 step 的小数位数。调整精度位数

:step=“0.1” 点击加减符号时增减的数值

<template><el-input-number v-model="num" :precision="2" :step="0.1" :max="10"></el-input-number>
</template>
<script>export default {data() {return {num: 1}}};
</script>

后端数据类型的获取和校验

前端比较校验传过来的数据必须是数字类型,才不会报错。不然虽然后端加上校验代码也是会报错的的。

这是因为 前端调用接口时,把数据传到后端Spring MVC框架会尝试将请求参数转换为相应的方法参数类型。如果数据类型不匹配或无法转换,Spring会抛出MethodArgumentTypeMismatchException异常。

但这并不意味着后端可以完全依赖于这种自动类型转换和异常处理来进行数据校验。因为用户可能绕过前端校验直接向后端发送请求。因此,后端需要进行数据校验以确保接收到的数据是合法和安全的。

//校验订单总价输入的必须是正整数或者正小数类型
Class<PurchaseOrder> purchaseOrderClass = PurchaseOrder.class;
Field totalPriceField = purchaseOrderClass.getDeclaredField("totalPrice");
Class<?> type = totalPriceField.getType();
if (!(type.equals(Integer.class) || type.equals(Double.class))){throw new CustomException("-1","订单总价请输入正整数或者小数数字");
}
http://www.yayakq.cn/news/178621/

相关文章:

  • 手机模版网站价格虎皮椒支付WordPress
  • 网站集约化建设探讨网络推广优化工具
  • 北京网站改版哪家好一份完整app运营推广方案
  • 做网站导航站的注意点设计类电子书网站
  • 武义公司网站建设wordpress 搭建 cms
  • 山东德州网站建设电子商务是干什么工作的
  • 东莞网站制作 东莞企业网站制作工业产品设计图片
  • 建设网站的网络公司潍坊seo
  • 衡水企业做网站高权重网站做员会来顶排名
  • 提供秦皇岛网站建设哪里有sousou提交网站入口
  • 手机小说网站源码重庆网站建设子沃科技熊掌号
  • 淄博网站营销与推广wordpress禁止谷歌
  • 济南网站搜索优化网站生成器
  • 泉州建站哪些公司网站平台建设可行性
  • 网站注册域名位置爱淘宝网页网站建设
  • 学做衣服网站3维网站制作技术
  • 毕业设计代做淘宝好还是网站好国税网站页面建设中
  • 无锡cms建站wordpress 导入网页
  • 北京网站建设公司 网络服务岳阳市交通建设投资公司门户网站
  • 免费软件安装网站建网站做cpa
  • 河南广告制作公司网站关于校园网站的策划书
  • 电子商务网站建设 填空题网络科技加我qq是干嘛
  • asp网站建设 win7合肥网站制作模板推荐
  • 公司网站备案电话丑陋网站设计赏析
  • 有个电商网站模板安徽省做网站
  • 小型电子商务网站规划建设方案公司做网站的费用属于什么费用
  • 如果让你建设网站之前你会想什么品牌推广案例
  • 网站开发 实习报告成都公司展厅设计公司
  • 100个免费设计网站这么自己做网站
  • 精通网站建设100全能建站密码电商网站的特点