JS中 submit提交与Form表单里的onsubmit的调用问题?

最近在开发中遇到了表单提交前验证的问题,用一个普通的button按钮代替submit按钮,
在提交前触发这个button的onclick事件,在其事件中触发form的submit事件。问题出现了:

<form action="http://www.baidu.com/s?wd=this.form.submit%28%29%3B&cl=3" method="post" name="form1" onsubmit="return alert(‘已提交!‘); return false;">
    <table align="center" width="420px" cellPadding="2" cellSpacing="1" bgcolor="#A4B6D7"    style="word-wrap:Break-word;">
        <tr style="cursor: hand;background:#d7e3f6" >
            <td width="20%" align="right">条型码</td>
            <td><input style="width:90%" type="text" name="GOODSNUM"   size="30"  maxlength="8" ></td>
        </tr>
        <tr>
            <td align="center" colspan="2">
                <input type="button" name="save" value="保存" onclick="if((confirm(‘确定要提交吗?‘))) this.form.submit();"/>
            </td>
        </tr>
    </table>
</form>

  发现并没有触发form的onsubmit方法,而是直接提交了。(自己测得时候并没有这个情况而是通过onsubmit验证了)

就改成this.form.onsubmit();  成功!

submit这个方法是不触发onsubmit事件的,如果想要触发它,需要调用
fireEvent方法。尝试一下:this.form.fireEvent(‘onsubmit‘);哈哈,果然也成功!不过这样不是多此一举吗?呵呵!

this.form.submit();     //直接提交表单
this.form.onsubmit();   //调用form的onsubmit方法
this.form.fireEvent(‘onsubmit‘); //同上,
     PS:又学到了fireEvent这个方法,

时间: 2024-08-12 14:47:32

JS中 submit提交与Form表单里的onsubmit的调用问题?的相关文章

form表单里如果只存在一个文本框,enter键提交

在这里说一说浏览器里form表单的默认行为 我们都知道浏览器是存在很多默认行为的,可能是出于常用行为考虑又或者是历史原因.但有时候我们不需要这些默认行为.以下: 1).当form表单里只存在一个input输入框时,回车会提交表单操作.  解决方法可以在form里面再加入一个隐藏的input输入框,或者把input从form里面放出来. 2).当form表单里有一个type=”submit”的按钮,回车会自动提交. 3).当form表单里的button按钮没有加type类型时,在ie下默认是but

Jquery实现只提交部分Form表单数据

Jquery文档中serialize()方法的描述为:序列表表格内容为字符串. 以下是测试代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>Jquery实现只提交部分Form

form表单里的按钮触发form表单的提交

出现问题主要原因是button标签的type属性,button的type属性值有三个分别为button.submit.reset.当我们在利用button标签写一个按钮且没有指定其type属性时,IE7以下版本会默认指定为button,其他会被默认指定为submit.当按钮的type属性被指定为submit的时候,点击它会提交表单.解决办法:当需在form标签中放置一个button的时候,如果这个按钮不是做提交表单的,切记一定要设置其type为button. 原文地址:https://www.c

js 上传文件模拟Form 表单

使用FormData对象 在本文章中 创建一个FormData对象 使用HTML表单来初始化一个FormData对象 使用FormData对象发送文件 利用FormData对象,你可以使用一系列的键值对来模拟一个完整的表单,然后使用XMLHttpRequest发送这个"表单". 创建一个FormData对象 你可以先创建一个空的FormData对象,然后使用append()方法向该对象里添加字段,如下: var oMyForm = new FormData(); oMyForm.app

js实现同时提交多个表单

http://www.jb51.net/article/17284.htm 两种方法: 1.使用ajax异步提交表单.方法简单,jQuery插件等都能实现. 2.使用iframe.方法很原始,较麻烦. 更多文章: 实现同时提交多个form(基础方法) 收集-http://blog.csdn.net/elifefly/article/details/7032334

iview中Modal弹窗做form表单验证相关问题

在modal中初始化状态,点击确定弹窗消失. 有的时候表单验证就不希望立刻消失 在iview官网中有自定义页头页脚 可以直接自定义使用 如果报错 validate 未定义的话,需要看一下点击事件内容引号是否正确 原文地址:https://www.cnblogs.com/xu-nian-qin/p/10824736.html

FORM表单 onclick()与onsubmit()

FORM表单中onclick().submit()与onsubmit()的问题 最近遇到一次处理form数据的过滤,采用了button的onclick事件来检查,发现return false后表单仍然提交了. 于是仔细研究了下onclick.onsubmit.submit集合函数之间的关系和区别 1 2 3 4 5 6 7 8 9 10 11 12 13 onsubmit: You can override this event by returning false in the event h

如何使用ajax 提交easyUI form表单

HTML代码: <form id="Login" method="post"> ... </form> JS代码如下: $(function(){ $("#log").click(function(){ $("#Login").form("submit",{ url:"LoginServlet", onSubmit: function(){ var s= $(&q

jQuery判断 form表单提交时如果表单里有input标签为空那么不提交form表单

<head> <script type="text/javascript"> $("#sub1").click(function(){ var text1=$("#text1").val(); if(text1==""){ alert("不能为空!"); $("#text1").select(); $("#text1").focus(); }e