• form表单提交和ajax提交的使用场景和差别


    共同点

    1、都是发送http请求

    2、安全性都一样,安全性与提交方式无关

    区别

    ajax请求:

    1. 如果表单提交后不需要页面跳转,或者想把跳转的控制权放在前端的话,用ajax提交更方便,这样页面不用刷新,只局部刷新加载速度快,网络带宽占用低,数据也不会闪屏
    2. ajax在提交、请求、接收时,是异步进行的,不影响页面其他部分
    3. ajax提交时,是在后台新建一个请求
    4. ajax必须要用js来实现,存在调试麻烦、浏览器兼容问题、而且不启用js的浏览器,无法完成操作
    5. ajax在提交、请求、接收时,整个过程需要使用程序来对其进行数据处理

    form表单提交:

    举例:

    <el-form ref="form" :model="form" label-width="80px" style=" 500px">
          <el-form-item label="活动名称">
            <el-input v-model="form.name"></el-input>
          </el-form-item>
          <el-form-item label="活动区域">
            <el-select v-model="form.region" placeholder="请选择活动区域">
              <el-option label="区域一" value="shanghai"></el-option>
              <el-option label="区域二" value="beijing"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="活动时间">
            <el-col :span="11">
              <el-date-picker
                type="date"
                placeholder="选择日期"
                v-model="form.date1"
                style=" 100%"
              ></el-date-picker>
            </el-col>
            <el-col class="line" :span="2">-</el-col>
            <el-col :span="11">
              <el-time-picker
                placeholder="选择时间"
                v-model="form.date2"
                style=" 100%"
              ></el-time-picker>
            </el-col>
          </el-form-item>
          <el-form-item label="即时配送">
            <el-switch v-model="form.delivery"></el-switch>
          </el-form-item>
          <el-form-item label="活动性质">
            <el-checkbox-group v-model="form.type">
              <el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox>
              <el-checkbox label="地推活动" name="type"></el-checkbox>
              <el-checkbox label="线下主题活动" name="type"></el-checkbox>
              <el-checkbox label="单纯品牌曝光" name="type"></el-checkbox>
            </el-checkbox-group>
          </el-form-item>
          <el-form-item label="特殊资源">
            <el-radio-group v-model="form.resource">
              <el-radio label="线上品牌商赞助"></el-radio>
              <el-radio label="线下场地免费"></el-radio>
            </el-radio-group>
          </el-form-item>
          <el-form-item label="活动形式">
            <el-input type="textarea" v-model="form.desc"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" @click="onSubmit">立即创建</el-button>
            <el-button>取消</el-button>
          </el-form-item>
        </el-form>
    data() {
        return {
          form: {
            name: "",
            region: "",
            date1: "",
            date2: "",
            delivery: false,
            type: [],
            resource: "",
            desc: "",
          },
        };
      },
    methods: {
        onSubmit(e) {
          // console.log(this.form);
          e.preventDefault();
          let formData = JSON.stringify(this.form);
          // console.log(formData);
          this.$http.post("", formData).then(function (res) {
            if (res.status === 2000) {
                console.log(111111)
            } else {
                console.log(222222)
     
            }
          });
        },
      },
    1. 如果表单提交以后需要重新跳转页面,或者要将跳转行为放在后端时,用表单提交更合适点,点击触发submit事件,后端控制页面的跳转及数据的传递
    2. form表单提交会新建一个页面,会在控制器和模板之间传递更多参数
    3. form是放弃本页面,然后再请求
    4. form表单提交,是根据表单结构自动完成,不需要代码干预,用submit提交
    5. form表单的属性中有校验的字段,用户只需要添加正则表达式的校验规则
    世界上没有什么偶然,有的只有必然。——壹原侑子
  • 相关阅读:
    POJ 1236 Network of Schools(强连通分量缩点求根节点和叶子节点的个数)
    文本编辑器vim和gedit
    Ubuntu安装tensorflow
    剑指offer——python【第29题】最小的K个数
    剑指offer——python【第30题】连续子数组的最大和
    剑指offer——python【第37题】数字在排序数组中出现的次数
    剑指offer——python【第28题】数组 中出现次数超过一半的数字
    剑指offer——python【第31题】整数1出现的次数
    剑指offer——python【第54题】字符流中第一个不重复的字符
    剑指offer——python【第40题】数组中只出现一次的数字
  • 原文地址:https://www.cnblogs.com/liazhimao/p/14948710.html
Copyright © 2020-2023  润新知