You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue项目如何实现表单必填校验,点击创建按钮时空值弹出alert提示

实现方案

你只需要修改store提交方法,在发送接口请求前加必填校验逻辑即可,具体修改如下:

步骤1:调整store方法

在axios.post执行前新增校验逻辑,判断title和content是否为空,空值直接弹出提示终止提交:

store() {
  let self = this;
  // 新增校验逻辑开始
  // 去掉首尾空格后判断是否为空
  const title = self.note.title.trim()
  const content = self.note.content.trim()
  if (!title) {
    alert('请填写标题')
    return
  }
  if (!content) {
    alert('请填写内容')
    return
  }
  // 新增校验逻辑结束

  // 如果你实际是用下方CKEditor富文本作为内容,把上面的content替换成editorData即可,示例如下:
  // const content = self.editorData.trim()
  // 也可以加一行把富文本内容赋值给note的content字段,方便统一提交:
  // self.note.content = self.editorData

  axios.post(this.$apiAdress + '/api/notes?token=' + localStorage.getItem("api_token"),
    self.note
  )
    .then(function (response) {
      self.note = {
        title: '',
        content: '',
        applies_to_date: '',
        status_id: null,
        note_type: '',
      };
      // 提交成功后记得清空富文本内容(如果用了的话)
      // self.editorData = ''
      self.message = 'Successfully created note.';
      self.showAlert();
    }).catch(function (error) {
    if (error.response.data.message == 'The given data was invalid.') {
      self.message = '';
      for (let key in error.response.data.errors) {
        if (error.response.data.errors.hasOwnProperty(key)) {
          self.message += error.response.data.errors[key][0] + '  ';
        }
      }
      self.showAlert();
    } else {
      console.log(error);
      self.$router.push({path: 'login'});
    }
  });
},

可选优化

如果你不想用原生alert,也可以直接复用你已经封装好的CAlert组件做提示,只需要把alert('xxx')替换成给self.message赋值再调用self.showAlert()即可,样式会更统一。

内容的提问来源于stack exchange,提问作者tarafikttes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 12:09:00