转载自:https://www.cnblogs.com/lorgine/archive/2011/03/30/2000284.html

今天做项目过程中,需要用到javascript提交form到后台,同时我也需要在提交后台之前执行onsubmit事件。

弄了半天也没有解决,然后无意中调试出来了。然后分析源码,现在把解决方案公布出来,给大家一个参考。

核心javascript原理如下

<script type="text/javascript">
//<![CDATA[
$(function(){
//这个不起作用
//$("form:first").attr("onsubmit","alert(123);return true;");
$("form:first").bind("onsubmit",function()
{
alert(123);
return true;
});
});
function test(){
alert(456);
return true;
}
function doSubmit() {
var theForm = $("form:first").get(0);
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.submit();
}
}
//]]>
</script>

关键在这行代码if (!theForm.onsubmit || (theForm.onsubmit() != false))

在提交之前会去检查是否有onsubmit属性,如果没有!theForm.onsubmit为true直接可以执行

theForm.submit();语句。

假如有onsubmit属性那么theForm.onsubmit对应的则是函数体,()表示执行。

当前的theForm.onsubmit函数是test注意test函数的返回值需为true,或者不加返回值,不能返回false,当然如果一定要返回false修改相应的即可。

注意必须把onsubmit直接写在form标签内,不可以通过事件绑定。

这个方法个人认为还是很巧妙的。先公布给大家。

javascript form提交 不执行onsubmit事件解决方案的更多相关文章

  1. Sending forms through JavaScript[form提交 form data]

    https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Sending_forms_through_JavaScript As in the ...

  2. JavaScript form提交汉字乱码

    <script type="text/javascript"> var test1="http://www.w3school.com.cn/My first/ ...

  3. form的onsubmit事件--表单提交前的验证最佳实现方式

    今天遇到了一个问题,页面中include了很多的公共页面(都是没有form的),并且里面好多的地方都是自行提交的(页面中加入一个type=“submit”域,然后js中写入sumbit.click来执 ...

  4. 在 Javascript 中,为什么给 form 添加了 onsubmit 事件,为什么 IE7/8 还是会提交表单?

    参考地址:http://stackoverflow.com/questions/4078245/onsubmit-return-false-has-no-effect-on-internet-expl ...

  5. JavaScript form表单提交与验证

    原网址:https://blog.csdn.net/vipwxs/article/details/79119701 一.form对象的属性: name:获取表单的名称,该name一般给JS使用 met ...

  6. form的submit()方法不能触发onsubmit事件的解决方法,兼容各版本浏览器。

    在处理表单提交的时候遇到一个问题,通常用<input type="submit" value="提交" />按钮来提交form,再监听form的on ...

  7. form表单提交onclick和onsubmit

    onsubmit只能表单上使用,提交表单前会触发, onclick是按钮等控件使用, 用来触发点击事件. 在提交表单前,一般都会进行数据验证,可以选择在submit按钮上的onclick中验证,也可以 ...

  8. form 表单onclick事件 禁止表单form提交

    最近遇到一次处理form数据的过滤,采用了button的onclick事件来检查,发现return false后表单仍然提交了. 于是仔细研究了下onclick.onsubmit.submit集合函数 ...

  9. form.submit 方法 并不会触发 form.onsubmit 事件

    做表单的时候发现一个奇怪的地方,总结下: form.submit 方法 并不会触发 form.onsubmit 事件,看代码: <body> <div class="con ...

随机推荐

  1. 模拟ajax接口返回的数据

    { "status": 0, "hasError": false, "success": true, "errno": ...

  2. HDU3915 Game 高斯消元

    题目链接 HDU3915 Game 高斯消元 题解 求异或方程组自由元的子集个数 高斯消元求秩,内存溢出好神 代码 #include<bitset> #include<cstdio& ...

  3. Qt 4.6.2静态编译

    一.下载mingw 4.4.0:ftp://ftp.trolltech.com/misc/MinGW-gcc440_1.zip 二.解压到C:\mingw目录下,设置环境变量path将C:\mingw ...

  4. 碰到在Windows中访问局域网文件夹, 提示无法访问时的解决办法

    运行:gpedit.msc 找到下图的位置, 启用即可

  5. C#编程(八十)---------- 异常类

    异常类 在C#里,异常处理就是C#为处理错误情况提供的一种机制.它为每种错误情况提供了定制的处理方式,并且把标志错误的代码预处理错误的代码分离开来. 对.net类来说,一般的异常类System.Exc ...

  6. 修改Unity中Lua文件的默认打开程序

    项目中引用了XLua,而Lua文件又是以txt文件结尾的,当修改系统的扩展脚本编辑器为vs后双击lua文件(xx.txt)默认也使用vs打开了,无提示的黑白文本编辑 昨办? -. 后来看到网上有写Un ...

  7. PKCS 15 个标准

    PKCS 全称是 Public-Key Cryptography Standards ,是由 RSA 实验室与其它安全系统开发商为促进公钥密码的发展而制订的一系列标准. 可以到官网上看看 What i ...

  8. C# ConcurrentBag实现

    ConcurrentBag可以理解为是一个线程安全无序集合,API比我们的list要弱一点,那我们来看看它的实现: public class ConcurrentBag<T> : IPro ...

  9. mysql 字符串分割 和 动态执行拼接sql

    本人以前主要用的是MSSQL,最近项目在使用MYSQL,自己是一个 典型的小白.今天就记录一下 一个mysql存储过程,里面需要分割字符串和 动态执行sql语句. 关于字符串 分割我开始使用 LOCA ...

  10. 用.Net打造一个移动客户端(Android/IOS)的服务端框架NHM(四)——Android端Http访问类(转)

    本章目的 在上一章中,我们利用Hibernate Tools完成了Android Model层的建立,依赖Hibernate Tools的强大功能,自动生成了Model层.在本章,我们将继续我们的项目 ...