当前位置:   article > 正文

uniapp-Form示例(uviewPlus)

uniapp-Form示例(uviewPlus)
  1. 示例说明
    Vue版本:vue3

        组件:uviewPlus(Form 表单 | uview-plus 3.0 - 全面兼容nvue的uni-app生态框架 - uni-app UI框架

        说明:表单组建、表单验证、提交验证等;

        截图:

  1. 示例代码
  1. <template>
  2. <view class="form">
  3. <uni-section title="基本信息" type="line">
  4. <view style="padding: 0 15px;">
  5. <u--form labelPosition="top" :model="uForm" :rules="rules" ref="uForm">
  6. <u-form-item label="姓名" labelWidth="60" prop="user.name" ref="item1" required>
  7. <u--input v-model="uForm.user.name" placeholder="请输入姓名" clearable></u--input>
  8. </u-form-item>
  9. <u-form-item label="手机号" labelWidth="60" prop="user.phone" type="number" ref="item1" required>
  10. <u--input v-model="uForm.user.phone" placeholder="请输入手机号" clearable maxlength="11"></u--input>
  11. </u-form-item>
  12. <u-form-item label="身份证" labelWidth="60" prop="user.idcard" type="idcard" ref="item1" required>
  13. <u--input v-model="uForm.user.idcard" placeholder="请输入身份证号" clearable maxlength="18"></u--input>
  14. </u-form-item>
  15. <u-form-item label="家庭住址" labelWidth="100" prop="user.address" ref="item1" required>
  16. <u--input v-model="uForm.user.address" placeholder="请输入家庭住址" clearable
  17. maxlength="60"></u--input>
  18. </u-form-item>
  19. </u--form>
  20. <view class="btn-save">
  21. <u-button text="保存" type="primary" @click="submit"></u-button>
  22. </view>
  23. </view>
  24. </uni-section>
  25. <u-toast ref="uToastRef"></u-toast>
  26. </view>
  27. </template>
  28. <script>
  29. export default {
  30. data() {
  31. return {
  32. uForm: {
  33. user: {
  34. name: ''
  35. }
  36. },
  37. // 验证规则
  38. rules: {
  39. 'user.name': [{
  40. required: true,
  41. message: '请输入姓名',
  42. trigger: ['change', 'blur'],
  43. },
  44. {
  45. // 自定义验证函数
  46. validator: (rule, value, callback) => {
  47. // 返回true表示校验通过,返回false表示不通过
  48. return uni.$u.test.chinese(value);
  49. },
  50. message: '姓名只能输入汉字',
  51. // 触发器可以同时用blur和change
  52. trigger: ['change', 'blur'],
  53. }
  54. ],
  55. 'user.phone': [{
  56. required: true,
  57. message: '请输入手机号',
  58. trigger: ['blur', 'change'],
  59. },
  60. {
  61. // 自定义验证函数
  62. validator: (rule, value, callback) => {
  63. // 返回true表示校验通过,返回false表示不通过
  64. return uni.$u.test.mobile(value);
  65. },
  66. message: '手机号码不正确',
  67. // 触发器可以同时用blur和change
  68. trigger: ['change', 'blur'],
  69. }
  70. ],
  71. 'user.idcard': [{
  72. required: true,
  73. message: '请输入身份证号',
  74. trigger: ['change', 'blur'],
  75. },
  76. {
  77. // 自定义验证函数
  78. validator: (rule, value, callback) => {
  79. // 返回true表示校验通过,返回false表示不通过
  80. return uni.$u.test.idCard(value);
  81. },
  82. message: '身份证号不正确',
  83. // 触发器可以同时用blur和change
  84. trigger: ['change', 'blur'],
  85. }
  86. ],
  87. 'user.address': {
  88. type: 'string',
  89. required: true,
  90. message: '请填写家庭住址',
  91. trigger: ['blur', 'change']
  92. },
  93. }
  94. }
  95. },
  96. onReady() {
  97. this.$refs.uForm.setRules(this.rules)
  98. },
  99. methods: {
  100. submit() {
  101. this.$refs.uForm.validate().then(res => {
  102. this.$refs.uToastRef.show({
  103. type: "success",
  104. message: "提交成功",
  105. })
  106. }).catch(err => {
  107. // uni.$u.toast('校验失败')
  108. this.$refs.uToastRef.show({
  109. type: "error",
  110. message: "请检查填写内容",
  111. })
  112. })
  113. }
  114. }
  115. }
  116. </script>
  117. <style lang="scss" scoped>
  118. .form {
  119. background-color: $white;
  120. height: 100vh;
  121. .btn-save {
  122. width: 300rpx;
  123. margin: 0 auto;
  124. margin-top: 100rpx;
  125. }
  126. }
  127. </style>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/315518
推荐阅读
相关标签
  

闽ICP备14008679号