form表单通常由type="submit"的按钮触发,从点击到提交表单,要经历下面两个方法:
- onsubmit();
- 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>
分享到:
相关推荐
标题中的“离开网页onbeforeunload事件在火狐的兼容并且提交不触发”涉及到的是Web开发中的一个特定事件处理,即onbeforeunload。这个事件在用户尝试离开当前网页时触发,通常用于确认用户是否真的想要离开页面,...
一、问题描述 类比一下,我用input.select()做了测试,却能响应select事件。这个原因先放一边,我们看看先怎么把眼下的问题解决了。 不响应事件的代码示例: [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 实际...
在Asp.net中,触发服务端事件是网页与服务器间通信的关键部分,使得开发者能够实现动态交互的功能。根据描述和部分内容,我们可以详细分析两种不同类型的客户端事件触发方式: 1. WebControls中的Button和...
Battery Historian Docker 解决没有submit按钮
4. **取消默认行为**:使用`preventDefault()`方法可以阻止事件的默认行为,这对于处理像`submit`、`click`等具有默认动作的事件非常有用。 #### 实现细节 为了有效地解决事件冲突问题,可以通过设置标志变量来...
在`<form>`标签中添加`onsubmit`事件,当表单提交时,将submit按钮置为禁用状态,从而防止用户再次点击提交。 2. **使用Token机制**:在每次表单提交前,服务器会生成一个唯一的Token,并将其发送到客户端。客户端...
表单元素拥有submit方法,同时也具有onsubmit事件句柄,用于监听表单提交。可以使用elemForm.submit();方法触发表单提交。1、表单元素中出现了name=”submit”的元素这种情况下elemForm.submit();将不会触发表单提交...
这种方式同样利用了`onsubmit`事件来触发自定义的JavaScript函数,增加了更多的灵活性和可控性。 ### 后端处理与编码问题 当表单数据被提交到服务器后,通常需要进行进一步的处理。在这个过程中可能会遇到编码问题...
解决这些问题的关键在于对事件处理的精确控制和对浏览器行为的充分理解,合理地使用JavaScript和jQuery的submit方法,以及确保按照预期的方式去触发表单提交事件,从而确保表单能够正常提交。如果在实际应用中遇到...
当用JS调用form的方法submit直接提交form的时候,submit事件不响应。为什么?知道的请回复。类比一下,我用input.select()做了测试,却能响应select事件。这个原因先放一边,我们看看先怎么把眼下的问题解决了。不...
1. `submit`会自动提交表单数据,而`button`则需要通过JavaScript来触发提交。 2. 使用`submit`时,如果需要进行JS验证,需在`onClick`事件中返回`true`或`false`。 3. `button`更适合用于执行用户自定义的操作,如...
1. **使用name属性和JavaScript事件处理**:为每个Submit按钮设置唯一的name属性,例如`<input type="submit" name="action1" value="提交1">`和`<input type="submit" name="action2" value="提交2">`。然后通过...
为了解决这个问题,我们可以将`<input>`包裹在`<form>`标签中,并添加`@submit.prevent`监听提交事件,同时设置`action="javascript:return true"`来防止页面刷新。这样,当用户在iOS设备上点击回车,`<form>`的提交...
在本文中,我们将深入探讨如何使用jQuery实现一个功能,即当用户在文本输入框中按下回车键时,触发按钮的点击事件。这个功能在许多Web应用中都很常见,例如登录表单,用户通常期望通过回车键提交信息,而不仅仅依赖...
2. **灵活性**:`button`提供了更多的编程灵活性,可以用来触发自定义的JavaScript事件,而`submit`更专注于表单的提交功能。 3. **应用场景**:如果你只需要一个用于提交表单的简单按钮,`submit`是一个不错的选择...
它们提供C和C++运行时函数,使得使用VC++编译的程序(如submit text2)能在没有安装完整Visual Studio环境的计算机上运行。`Microsoft.VC90.CRT.manifest`是与这些库相关的元数据文件,用于管理依赖关系和确保正确...
当调用此方法时,会触发表单中的submit事件处理器,如果事件处理器没有返回false,那么表单就会被提交。具体用法如下: ```javascript $("#form").submit(); ``` 知识点二:表单提交时的常见问题及解决方法 有时...
9. Submit事件:用户提交表单时触发的事件。 三、事件处理器 事件处理器是指对事件的处理函数或代码。事件处理器可以是内置的JavaScript函数,也可以是用户自定义的函数。事件处理器的作用是对应着事件的触发,...