产生原因:A标签有个链接属性 href , 而form也有一个页面请求属性 action, 当两属性同时存在时, 点击A标签当然会优先A标签的
href链接。但如果是 <a href="javascript:void(0);" ></a>, IE7 ,IE8 , FF 均能正确处理, 忽略A标签的href, 执行表单的submit动作,
唯有 IE6 仍坚持着自己的原则, 只要有 href , 就只尝试执行链接 href , 除非你的A标签标签中去掉 href属性,
但去掉 href 你将发现IE下将不会出现下划线。
Html代码1.<a href="javascript:void(0);" class="reg_submit" id="asubmit" οnclick="if(!validate()){return false;}else{document.getElementById("regfrm").submit();}">提交</a>,
其中validate() 是自定义的一个函数,用于验证表单。
三种解决方法:
第一种方法:Html代码 1.<a href="javascript:void(0);" style="cursor:pointer;" class="reg_submit" id="asubmit" οnclick="if(!validate()){return false;}else{document.getElementById("regfrm").submit();}">提交</a>,这种方法根本没有href属性,用style="cursor:pointer;" 产生手型图标来模拟。 第二种方法:Html代码 1.<a href="javascript:void(0);" class="reg_submit" id="asubmit" οnclick="if(!validate()){return false;}else{document.getElementById("regfrm").submit();return false;}">提交</a>,onclick 返回 false ,阻止浏览器的默认行为,也可以达到相同的目的。
第三种方法:Html代码1.<a href="javascript:void(0);" class="reg_submit" id="asubmit">提交</a>。window.onload = function() {
document.getElementById("asubmit").onclick = function() {
setTimeout(function() {if(!validate()){return false;}else{document.getElementById("regfrm").submit();return true;}}, 0);
}
}
加载提交表单方法 ,在submit()前先等一下,让出处理时间。
转自:http://hi.baidu.com/l_rigidity/item/6efadbdb8cd58bed54347f36
a标签提交在onclick函数后加上 return false;