HTML form 避免(回车)表单自动提交

本文介绍了JavaScript中如何通过代码实现表单的自动提交功能及其禁用方法,包括使用按钮替代默认的提交按钮和通过事件监听器自定义提交行为。通过实例演示了如何根据不同按钮触发不同表单动作,适用于需要灵活控制表单提交场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、JavaScript提交表单代码

 <span style="font-size:14px;">   <span style="font-size:18px;">
      <span style="color:#FF0000;"> document.forms["myform"].submit(); </span> 
       or   
       document.myform.submit();//myform为表单名
    </span>  </span>
2、当表单中包含input的text、password等时按下回车键(Enter)会自动提交表单,有时需要这种功能,有时不需要这一功能。禁用回车自动提交攻略之一:

 1)用button按钮替换submit按钮;

 2)给button按钮添加onclick事件,同时在onclick事件中提交表单;

<script language="javascript">
	function defineSubmit(btn)
	{
		document.testForm.submit();
	}
</script>

<form name="testForm" method="post" action=" ">
	username:<input type="text" name="username"/>
	password:<input type="password" name="password"/>
	<input type="button" name="submitName" onclick="defineSubmit(this)" value="submit1"/>
</form>
改进:

假如一个表单中需要有多个按钮,不同的按钮提交给不同的处理程序,可进行如下改进:

<script language="javascript">
	function defineSubmit(btn)
	{
		if("submit1" == btn.value)
		{
			<span style="color:#FF0000;"><span style="background-color: rgb(255, 255, 255);">document.testForm.action</span></span>="firstAction";
		}
		else
		{
			<span style="color:#FF0000;">document.testForm.action</span>="secondAction";
		}
		
		document.testForm.submit();
	}
</script>
<form <span style="color:#FF0000;">name="testForm"</span> method="post">
		username:<input type="text" name="username"/>
		password:<input type="password" name="password"/>
		<input type="button" name="submitName" onclick="defineSubmit(this)" value="submit1"/>
		<input type="button" name="submitName" onclick="defineSubmit(this)" value="submit2"/>
</form>

原文出处:http://blog.youkuaiyun.com/shutear/article/details/7914243

### 防止 Element UI `el-form` 表单内输入框按回车键时页面自动刷新 为了防止 `el-form` 中单个输入框按回车键时页面自动刷新,可以采用多种方式来处理这个问题。 #### 方法一:阻止表单默认提交行为 通过在 `<el-form>` 标签上添加 `@submit.native.prevent` 属性,能够有效阻止表单的默认提交动作。这种方式适用于整个表单范围内的所有按键操作: ```html <el-form :model="Form" label-width="100px" @submit.native.prevent> <el-form-item label="名称"> <el-input v-model="Form.name"></el-input> </el-form-item> </el-form> ``` 这种方法简单直接,不需要额外修改其他地方的代码[^3]。 #### 方法二:监听特定输入框的键盘事件 对于具体的某个输入框来说,可以通过绑定 `@keyup.enter.native` 事件处理器来捕获用户的回车键按下事件,并执行自定义逻辑而不是触发表单提交: ```html <el-input v-model="value" @keyup.enter.native="handleEnter"></el-input> <script> export default { methods: { handleEnter() { console.log('Enter key pressed'); // 自定义逻辑... } } } </script> ``` 此方案允许开发者针对不同场景灵活响应用户交互需求[^2]。 #### 方法三:隐藏多余的不可见输入字段 如果确实只需要一个可见的输入控件,则可以在表单里加入另一个样式设置为 `display:none` 的隐式输入域,从而避免浏览器认为当前只有一个可编辑区域而将其视为搜索栏或登录框等情况下的特殊对待: ```html <el-form :inline="true" :model="queryParams"> <el-form-item label="名称" prop="keyword"> <el-input v-model="queryParams.keyword" @keyup.enter="handleQuery"/> </el-form-item> <!-- 添加一个隐藏的 input --> <input type="text" style="display:none;" /> </el-form> ``` 这种做法虽然有些取巧但不失为一种有效的临时措施[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值