当前位置: 首页 > 图文教程 > 网络编程 > Javascript > input、button的不同type值在ajax提交表单时导致的陷阱

Javascript
Add a Table to a Word Document
Add Formatted Text to a Word Document
用jscript实现新建word文档
用jscript实现新建和保存一个word文档
Open and Print a Word Document
Use Word to Search for Files
Convert Seconds To Hours
Sample script that deletes a SQL Server database
Sample script that displays all of the users in a given SQL Server DB
firefox中用javascript实现鼠标位置的定位
div+css实现鼠标放上去,背景跟图片都会变化。
Locate a File Using a File Open Dialog Box
Save a File Using a File Save Dialog Box
用jscript实现列出安装的软件列表
List the Stored Procedures in a SQL Server database
Display SQL Server Login Mode
Display SQL Server Version Information
List all the Databases on a SQL Server
用jscript启动sqlserver
Stop SQL Server

Javascript 中的 input、button的不同type值在ajax提交表单时导致的陷阱


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 402 ::
收藏到网摘: n/a

最近在公司的项目中尝试着利用YUI来实现各种效果。 今天在做利用connection 作表单提交过程中发现,标签"input"跟"botton"中的type属性设置原来也是一门学问。
在开发过程中,为了使html代码更加整洁,我首先利用YAHOO.util.Event.addListener(obj, "click", callback)类加载"click"事件来提交表单,YAHOO.util.Connect.asyncRequest('POST')方式来上传表单数据,如果表单信息不正确,那么作返回处理。而提交的按钮我采用的是<button type="submit">提交</button>。
这时发现除了IE6能够对我的表单数据作出正确的处理外,FIREFOX包括IE7都不能对我的错误处理作出回应(callback方法中,正对错误的处理方式是:只要一碰到错误,那么就通过return false的方式返回)。
这时在我的思路里想的是,在语句中提交表单数据前我已经做了返回处理,可页面怎么还是给刷新了呢。
晚上回到家里再次对今天碰到的问题做测试,结果发现,我忽略了一点,数据也的确是有提交了,并且在地址栏中可以明确地看到各种数据,而事实也证明,数据肯定是被提交了,于是想到了我的按钮,按钮的类别设置是"submit",之前在写代码时,都是直接在"input"或者"button"中,如果类别设置为"submit"时,都是这样写的onclick="return fun();"或者onclick="fun(); return false;";这自然是不会出现问题,怪就怪在,addListener类的值并不是直接影响到按钮的,一点击按钮,自然也就会提交数据了。
惨痛啊~~~~
附:button默认type值为submit,因此最好标识下类别!!!谨记!