`

html form onsubmit表单提交的问题

 
阅读更多

FORM表单中onclick()、submit()与onsubmit()的问题

2012-03-01 Tech Notes 252 / 0

最近遇到一次处理form数据的过滤,采用了button的onclick事件来检查,发现return false后表单仍然提交了。

于是仔细研究了下onclick、onsubmit、submit集合函数之间的关系和区别

onsubmit
You can override this event by returning false in the event handler. Use this capability to validate data on the client side to prevent invalid data from being submitted to the server. If the event handler is called by the onsubmit attribute of the form object, the code must explicitly request the return value using the return function, and the event handler must provide an explicit return value for each possible code path in the event handler function.
The submit method does not invoke the onsubmit event handler.

submit
The submit method does not invoke the onsubmit event handler. Call the onsubmit event handler directly. When using Microsoft? Internet Explorer 5.5 and later, you can call the fireEvent method with a value of onsubmit in the sEvent parameter.

首先生成一个form

1 <form action="#" method="POST" name="A" onsubmit="return X();">
2 <input type="text" value="" />
3 <input onclick="Y()" type="submit" value="提交" />
4 </form>

自己写X()、Y()函数,我们会发现,这几个函数的执行顺序

1) onclick: Y();

2) onsubmit: X();

3) submit();

也就是说

只要 onclick 未 return false 那么就继续执行 onsubmit

只要 onsubmit 未return false 那么表单就被提交出去了

另外一点写法上注意一定要 “return X();” 才能取得函数的返回值,否则只是调用函数,返回值未被传递

正确写法:
<input type=submit onclick=”return X();”>
//X() 返回false后,form的submit会被终止

错误写法:
<input type=submit onclick=”X()”>

//X() 返回false后未传递给onclick事件,form的submit会继续

分享到:
评论

相关推荐

    防止Layui form表单重复提交的实现方法

    在使用Layui设计表单时,经常会遇到表单提交后页面刷新导致的重复提交问题。为了解决这个问题,开发者需要确保表单只提交一次,防止不必要的数据重复处理或者服务器的重复计算。下面详细解释几种防止Layui表单重复...

    submit表单提交,onsubmit验证拦截

    submit表单提交,onsubmit验证拦截 免去了用button按钮click点击事件ajax请求

    【JavaScript源代码】HTML form表单提交方法案例详解.docx

    回 false, 不提交,如果不为空,提交到由...总的来说,HTML `&lt;form&gt;`表单结合JavaScript的验证功能,为用户提供了一种交互式的、安全的数据输入和提交机制。理解这些基本概念对于开发动态、响应式的Web应用至关重要。

    onsubmit阻止form表单提交与onclick的相关操作

    `onsubmit`事件会在用户点击表单内的提交按钮(`&lt;input type="submit"&gt;`)或者通过JavaScript调用`form.submit()`时触发。需要注意的是,如果表单提交是通过一个普通按钮(`&lt;input type="button"&gt;`)的`onclick`...

    说说回车键触发表单提交的问题

    - **使用`&lt;form onsubmit=""&gt;`**:在`&lt;form&gt;`标签上添加`onsubmit`事件处理函数,可以控制表单提交前后的逻辑。 此外,对于`&lt;textarea&gt;`元素,按下回车键会插入换行符,而非触发表单提交。如果希望在此场景下也响应...

    C# webBrowser 自动表单提交问题 - 真功夫

    ### 表单提交问题背景 本案例中,开发人员需要使用`webBrowser`控件来自动提交一个登录表单。表单的HTML结构大致如下: ```html &lt;form id="f_login" name="f_login" target="_top" method="post" onsubmit="return...

    原生js form表单美化插件表单元素input select下拉框

    3. 表单事件:如onsubmit(提交时触发)、onchange(元素值改变时触发)等,可以通过JavaScript进行响应处理。 二、input元素美化 1. CSS样式:通过设置input元素的CSS样式,如border、background-color、padding、...

    简单的表单提交代码

    在`&lt;form&gt;`标签内定义`action`属性指定表单数据提交的URL,`method`属性则定义提交方式,常见的有GET和POST。 2. **GET与POST提交** - GET方式:表单数据会附加在URL后面,可见且有长度限制,适合不涉及敏感信息的...

    JSP避免Form重复提交的三种方案

    在Web开发中,尤其是使用JavaServer Pages (JSP)时,Form表单的重复提交问题是一个常见的挑战。这可能导致数据不一致性和服务器资源的浪费。本文将探讨三种防止JSP表单重复提交的方法。 首先,我们可以使用...

    在IE的模式窗口中,通过表单提交到本页,并通过javascript获取提交的参数

    表单通过`&lt;form&gt;`标签定义,可以设置`action`属性指定提交的URL,`method`属性定义提交方式,通常是`GET`或`POST`。在这个场景中,`action`设置为"自身",即当前页面的URL,这样提交后页面不会刷新,而是保持在当前...

    JavaScript event(事件) 字符串长度控制及Form表单提交控制

    在本主题中,我们将深入探讨JavaScript中的事件、字符串长度控制以及如何对Form表单进行提交控制。 首先,我们来讨论JavaScript事件。事件是用户与网页进行交互时产生的动作,比如点击按钮、滚动页面或填写表单。...

    在一个form表单里同时上传多个文件和文本信息的解决方案

    通过以上步骤,我们成功地在一个form表单中实现了同时上传多个文件和文本信息的功能。这种实现方式不仅提高了用户的使用体验,也方便了开发者对上传数据的管理和处理。在实际应用中,还可以进一步扩展该功能,例如...

    JS验证页面form表单数据,齐全

    在form表单上添加一个提交事件调用验证数据方法 &lt;form name="listform" action="resume-doAdd" method="post" onsubmit="return Validator.Validate(this,3);"&gt; 请输入正确的手机号!" requiremsg="移动电话不能为...

    Form表单的action和onSubmit示例介绍

    在Web开发中,Form表单是用来收集用户输入信息并提交至服务器的一个常用HTML元素。Form表单具有多个属性和事件,其中action属性和onSubmit事件是两个非常重要的组成部分。 action属性是form表单的一个基本属性,它...

    js提交表单及js表单验证

    表单提交通常通过HTML中的`&lt;form&gt;`标签实现,当用户点击“提交”按钮时,默认行为是将表单数据发送到服务器端进行处理。但我们可以利用JavaScript来改变这种默认行为,例如,在提交前进行一些验证操作。 ```html ...

    form表单action提交的js部分与html部分

    1、JS部分代码 代码如下: /** * 提交表单 */ function submitForm(action, actName, objName, formName,blogType){ $(“#”+formName).attr(“action”,action); //var f = document.getElementsByTagName(“form”)...

    JavaScript阻止表单提交方法(附代码)

    例如,在HTML中,你可以为表单的`&lt;form&gt;`元素添加一个`onsubmit`属性,绑定一个JavaScript函数: ```html &lt;form action="clock.html" method="post" onsubmit="handleSubmit(event)"&gt; &lt;p&gt;name:...

    js 提交form表单和设置form表单请求路径的实现方法

    在实际应用中,处理表单提交时要考虑到性能和用户体验的问题。例如,提交过程中可能会涉及到异步请求(AJAX),在提交之前应该禁止提交按钮的默认行为,并在成功提交后禁用按钮,防止用户重复提交。此外,在提交过程...

Global site tag (gtag.js) - Google Analytics