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

Javascript
javascript据option的value值快速设定初始的selected选项
document.open() 与 document.write()的区别
javascript实现轮显新闻标题链接
一段效率很高的for循环语句使用方法
使一个函数作为另外一个函数的参数来运行的javascript代码
javascript引用对象的方法代码
javascript下给元素添加事件的方法与代码
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
js 事件小结 表格区别
用js实现计算代码行数的简单方法附代码
收藏的js表单验证控制代码大全
提供一款很不错的万年历查询
用javascript实现计算两个日期的间隔天数
用javascript实现在小方框中浏览大图的代码
用js实现上传图片前的预览(TX的面试题)
用javascript实现li 列表数据隔行变换背景颜色
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
总结AJAX相关JS代码片段和浏览器模型
超强推荐的js编程中的简洁写法收集
javascript 函数式编程

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 406 ::
收藏到网摘: 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,因此最好标识下类别!!!谨记!