回车即可提交非form数据

本文介绍了一种使用JavaScript为网页上的按钮添加回车键触发提交功能的方法。通过监听键盘事件并判断按键是否为回车键,使得用户可以通过按下回车键来激活提交按钮,从而实现快速提交操作。
  1.  <script language="javascript">  
  2.      window.document.attachEvent("onkeydown", function(){   
  3.   
  4.          if(window.event.keyCode == 13){   
  5.   
  6.            var submit = document.getElementById("submit");   
  7.            submit.focus();   
  8.   
  9.            //另一种激活的方法   
  10.            //submit.fireEvent("onclick");   
  11.            //注:fireEvent不能与focus共存,否则提交两次             
  12.   
  13.         }      
  14.   
  15.      });   
  16.   
  17.    function submit(){   
  18.        alert('提交成功');   
  19.    }   
  20. </script>  
  21.  <body>  
  22.    <input type="button" id="submit" value="点回车亦可提交" onclick="submit()"/>  
  23.  </body> 
### 提交对话框中的 `el-form` 表单数据 在使用 `el-form` 构建的对话框中实现表单提交功能,需要结合 `ref`、`model`、`rules` 等属性进行数据绑定和校验,并通过事件监听控制提交行为。以下为实现方法及常见问题的解决方案。 #### 表单提交数据绑定 在对话框中定义 `el-form` 组件,并通过 `:model` 绑定一个数据对象(如 `addForm`),该对象将用于存储表单字段的值。例如: ```html <el-dialog :visible.sync="addDialogVisible" title="添加任务"> <el-form :model="addForm" :rules="rules" ref="addFormRef"> <el-form-item label="任务名称" prop="taskName"> <el-input v-model="addForm.taskName"></el-input> </el-form-item> <el-form-item label="价格模型" prop="priceModel"> <el-select v-model="addForm.priceModel"> <el-option v-for="item in priceOptions" :key="item.value" :label="item.label" :value="item.value" ></el-option> </el-select> </el-form-item> <el-button @click="submitForm">提交</el-button> </el-form> </el-dialog> ``` 在 `methods` 中定义 `submitForm` 方法,通过 `this.$refs.addFormRef.validate()` 校验表单数据,校验通过后提交至后端接口: ```javascript submitForm () { this.$refs.addFormRef.validate(valid => { if (valid) { // 提交表单数据 this.$http.post('/api/tasks', this.addForm) .then(response => { this.$message.success('提交成功'); this.addDialogVisible = false; this.getTaskList(); }) .catch(error => { this.$message.error('提交失败'); }); } }); } ``` #### 防止回车键触发表单提交 当表单中仅包含一个 `el-input` 文本框时,按下回车键会触发默认的表单提交行为,导致页面刷新。为避免该问题,可以在 `el-form` 上添加 `@submit.prevent` 事件阻止默认提交行为: ```html <el-form :model="SearchForm" @submit.prevent> <el-form-item prop="SearchText"> <el-input v-model="SearchText" placeholder="物品编号" /> </el-form-item> </el-form> ``` 此方式确保即使按下回车键,也不会触发页面刷新,而是由开发者控制提交逻辑[^1]。 #### 文件上传与表单数据绑定 在需要上传附件的表单中,可使用 `el-upload` 组件结合 `on-success` 回调获取上传后的文件信息,并将其绑定到 `addForm` 的字段中。例如: ```html <el-form :model="addForm" ref="addFormRef"> <el-form-item label="附件"> <el-upload action="/api/upload" :on-success="handleUploadSuccess" :auto-upload="true"> <el-button>上传文件</el-button> </el-upload> </el-form-item> <el-button @click="submitForm">提交</el-button> </el-form> ``` 在 `handleUploadSuccess` 方法中更新 `addForm` 的附件字段: ```javascript handleUploadSuccess(response, file) { this.addForm.fileId = response.fileId; } ``` 提交时,`addForm` 中将包含上传后的文件信息,可一并发送至后端接口[^2]。 #### 表单重置与对话框关闭 为确保每次打开对话框时表单处于初始状态,可在对话框关闭时调用 `resetFields()` 方法重置表单状态: ```html <el-dialog :visible.sync="addDialogVisible" @close="resetForm"> ``` ```javascript resetForm () { this.$refs.addFormRef.resetFields(); } ``` 该方法会将表单字段恢复到初始值,并清除校验状态,避免前一次提交的影响。 #### 自定义校验规则与错误提示 `el-form` 支持通过 `:rules` 属性定义校验规则,并在 `el-form-item` 中通过 `prop` 指定字段进行校验。例如: ```javascript rules: { taskName: [ { required: true, message: '任务名称不能为空', trigger: 'blur' } ], priceModel: [ { required: true, message: '请选择价格模型', trigger: 'change' } ] } ``` 在表单项中指定 `prop` 即可启用校验: ```html <el-form-item label="任务名称" prop="taskName"> <el-input v-model="addForm.taskName"></el-input> </el-form-item> ``` 提交时,若校验失败,会自动显示错误提示信息,无需手动处理。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值