`
muyu
  • 浏览: 218542 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

submit()不能触发obsubmit事件的解决办法

阅读更多

form表单通常由type="submit"的按钮触发,从点击到提交表单,要经历下面两个方法:

  1. onsubmit();
  2. submit();

 

有的网页因某些原因,放弃了标准的按钮、用type="button"的按钮代替,然后再手动触发submit(),如下:

<input type="button" value="提交" onclick="document.form.submit();" />

 这时候,问题产生了,因为onsubmit()里的程序将不被执行!在DHTML手册里,多次提到了二者的关系:

submit Method 说明 写道
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.

  

 所以,解决办法就是:在submit()之前,先手动触发onsubmit事件,请下面的完整代码(引用了jquery):

<html>
<head>
<script src="jquery-1.3.2.min.js"></script>
</head>
<body>

<form id="myform" action='/Personinfo/infoAction' method='post' name='Users_form' > 
生日:<input type='text' name="obj_Users[birth]" value='1971-01-01' />
<input type='button' value='更新个人资料' onclick="foo();" />
</form>

</body>
</html>

<script language=javascript>
  //监听obsubmit事件
  $(window).load(function(){
    $("#myform").bind("submit", function() { alert('现在执行 onsubmit 事件!'); return false;})
  });

  function foo(){
    var result = false;
    //IE fire event
    form = document.Users_form;
    if (form.fireEvent) {
      result = form.fireEvent('onsubmit');
    //DOM2 fire event
    } else if (document.createEvent) {
      var ev = document.createEvent('HTMLEvents');
      ev.initEvent('submit', false, true);
      result = form.dispatchEvent(ev);
    }
    if(result) {document.Users_form.submit();}

  }
</script>

 

 

1
0
分享到:
评论

相关推荐

    表单Form的submit事件不响应的解决方法

    一、问题描述 类比一下,我用input.select()做了测试,却能响应select事件。这个原因先放一边,我们看看先怎么把眼下的问题解决了。 不响应事件的代码示例: [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 实际...

    Battery Historian Docker 解决没有submit按钮

    Battery Historian Docker 解决没有submit按钮

    表单元素的submit()方法和onsubmit事件应用概述

    表单元素拥有submit方法,同时也具有onsubmit事件句柄,用于监听表单提交。可以使用elemForm.submit();方法触发表单提交。1、表单元素中出现了name=”submit”的元素这种情况下elemForm.submit();将不会触发表单提交...

    表单Form的submit事件不响应

    当用JS调用form的方法submit直接提交form的时候,submit事件不响应。为什么?知道的请回复。类比一下,我用input.select()做了测试,却能响应select事件。这个原因先放一边,我们看看先怎么把眼下的问题解决了。不...

    rss_submit5

    RSS Submit是個很有趣的小軟體,主要功能就是透過RSS的機制幫你將網站或部落格登錄到全世界80多個搜尋引擎中,幾分鐘內就可以快速推廣網站的能見度,雖然所支援的網站大部分都是英語或其他非中文的語言,不過總是多...

    chrome不支持form.submit的解决方案

    最近看到Q群里有人说chrome(谷歌浏览器)不支持form.submit方法,求解决办法。闲的时候亲自测试了一番,发现chrome竟然真的不支持form.submit,测试的时候用的是Jquery的,也不支持,于是乎研究了半天,终于找到了...

    让submit只提交一次

    让submit只提交一次

    jquery submit()不能提交表单的解决方法

    主要为大家详细介绍了jquery submit()不能提交表单的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    jQuery事件及绑定.pptx

    submit() 当表单提交时触发 select() 当文本框(包括和中的文本被选中的时触发) scroll() 当滚动条发生变化时触发 resize() 当调整浏览器窗口大小时触发 2、事件的绑定 bind() 方法:可以向被选元素添加一个或多

    Ext AJAX submit方法实例

    Ext AJAX submit方法实例Ext AJAX submit方法实例

    ABAP子程序SUBMIT调用的方法

    这是一个ABAP子程序SUBMIT调用的方法,要根据实际灵活使用。

    解决Vue @submit 提交后不刷新页面问题

    我就废话不多说了,大家还是直接看代码吧~ &lt;form @submit=add&gt;...以上这篇解决Vue @submit 提交后不刷新页面问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。

    页面提交submit的几种方法

    页面提交submit的几种方法,让你有更好,更多的提交方式

    JS和jQuery使用submit方法无法提交表单的原因分析及解决办法

    平常自己做触发按钮,基本不用a 标签,但是昨天不知道什么 问题,竟然用了 a 而且还给了 href 为空,由于这个a 的class 有多个 内容,所以检查时候根本就没有去看href 没有写内容。所以,每次进行click 操作的时候 ...

    JavaScript在form表单中使用button按钮实现submit提交方法

    submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了,submit和button,二者都以按钮的形式展现,看起来都是按钮,所不同的是type属性和处发响应的事件上。 在javaScript中关于submit和button的...

    JS定义网页表单提交(submit)的方法

    本文实例讲述了JS定义网页表单提交(submit)的方法。分享给大家供大家参考。具体如下: 这段代码表示网页表单提交时不是提交到指定的页面,而是执行一个特定的函数 [removed] function saveInfo() { localStorage...

    JS中的form.submit()不能提交表单的错误原因

    主要介绍了JS中的form.submit()不能提交表单的错误原因,本文最后得出结论是按钮的ID、名称不要使用submit,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics