【问题标题】:How to cancel a QDate choose?如何取消 QDate 选择?
【发布时间】:2021-01-20 11:46:12
【问题描述】:

我在 Vue2.JS 项目中使用 Quasar。我有一个 QDate,与 QPopupEdit 链接(带有取消和设置按钮)。我想在单击设置时运行特定功能。如果条件为真,我想取消此设置而不屏蔽 QDate 和 QPopupEdit。

这里是代码:

<QPopupEdit
  v-model="displayBirthday"
  buttons
  :label-set="$t('set')"
  :label-cancel="$t('cancel')"
>
  <QDate
    :ref="'test'"
    v-model="displayBirthday"
    minimal
    class="no-shadow"
    mask="DD/MM/YYYY"
    :locale="locale"
  />
</QPopupEdit>

谢谢。

【问题讨论】:

    标签: javascript vuejs2 quasar qdate


    【解决方案1】:

    要在单击保存或关闭时执行某个功能,为此,根据documentation,您需要为“QPopupEdit”组件实现“validate”属性,并且如果您想向该组件显示验证错误您使用的元素,您需要添加“错误”和“属性。错误消息”我附上一个例子

    new Vue({
      el: '#q-app',
      data: function() {
        return {
          value: '5',
          displayBirthday: '01/01/2021',
          error: {
            status: false,
            msg: null
          }
        }
      },
      methods: {
        validateDate(val) {
          if (val == moment().format('DD/MM/YYYY')) {
            this.error.status = true
            this.error.msg = 'The date cannot be today'
            return false
          }
          this.error.status = false
          this.error.msg = ''
          return true
        }
      }
    })
    <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/@quasar/extras/material-icons/material-icons.css">
    <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/quasar/dist/quasar.min.css">
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
    <script src="https://cdn.jsdelivr.net/npm/quasar/dist/quasar.umd.min.js"></script>
    <script src="https://momentjs.com/downloads/moment.min.js"></script>
    
    <div id="q-app">
      <div class="q-pa-md">
        <div class="cursor-pointer" style="width: 100px">
          {{ displayBirthday }}
          <q-popup-edit v-model="displayBirthday" buttons label-set="Save" label-cancel="Close" :validate="validateDate" @hide="validateDate">
            <q-input outlined class="full-width" v-model="displayBirthday" label="fecha" mask="##/##/####" :error="error.status" :error-message="error.msg" @click="$refs.qDateProxy.show()">
              <template v-slot:prepend>
                            <q-icon name="event"
                                    class="cursor-pointer"
                                    color="primary">
                                <q-popup-proxy ref="qDateProxy"
                                               transition-show="scale"
                                               transition-hide="scale">
                                    <q-date v-model="displayBirthday"
                                            @input="() => $refs.qDateProxy.hide()"
                                            mask="DD/MM/YYYY"
                                            validateDateFormat />
                                </q-popup-proxy>
                            </q-icon>
                        </template>
            </q-input>
          </q-popup-edit>
        </div>
      </div>
    </div>

    https://jsfiddle.net/idkc/2Ltgs3dp/45/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-22
      • 2011-10-09
      • 1970-01-01
      • 2021-10-29
      • 2023-04-06
      • 1970-01-01
      • 2017-03-17
      • 1970-01-01
      相关资源
      最近更新 更多