button auto submit problem solving

18 篇文章 0 订阅

让人蛋疼的<button>标签,竟然从ie8以上,或者chrome,FF都会自动提交,对于新项目一切好说,你可以改成input type="button",或者在form标签处,加一对属性值:οnsubmit="return false";一切都正常。


蛋疼的事情来了,你要给一个老项目升级,让他兼容目前各种浏览器。好吧。。在代码里,多处都是<button>,一点就会自动提交,咋办呢?那么多界面一个一个去改么?神经了。。

摸索。。。找到方法了。。在全局的js中,加一段代码,

尝试1:

var buttonArray =  document.getElementsByTagName("button");
	//alert(buttonArray.length);
	for(var i=0;i<buttonArray.length;i++){
		buttonArray[i].on("click",function(e){
   		 e.preventDefault;
	});
  }
上面的目的是禁止button的自动提交事件,呵呵,我用的chrome浏览器,不管用。。这个地方应该设计到了ie和其他浏览器对标准不一致的问题。好吧。。扔了


尝试2:

/* if(Ext.query('form')){
		Ext.query('form').set({onsubmit:"return false;"});
		//document.getElementsByTagName("s:form").setAttribute("onsubmit","return false;");
		
	} */

目的是给<s:form>标签增加一个onsubmit属性,阻止自动提交。。form光秃秃的,id,name均没有。。好吧。。扔了

尝试3:

var target_form = document.forms[0];
    target_form.setAttribute("onsubmit","return false;");
这次终于可以了,document.forms用法~~~有时间多熟悉下document 吧。。。setAttribute()方法只有IE支持。。要用这个方法,可能要分ie和chrome写if兼容代码。。

尝试4:

Ext.each(Ext.query("button"),function(item){//button标签的兼容性统一处理 
			item.setAttribute("type","button");
		});
button标签之所以自动提交,是因为它默认的type是“submit”,所以采用ext的方式给每一个button标签加一个type属性,值为“button”.熟练掌握extjs是多么好的一件事儿,慢慢掌握吧~


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值