怎么用js实现按钮不提交表单

<form action="javascript:addToCart({$goods.goods_id})" method="post" name="ECS_FORMBUY" id="ECS_FORMBUY" >

</form>
<DIV class=add>

<INPUT id=ibtnBuy src="themes/default/images/gopay_bt.jpg"
type=image >

<INPUT
style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px;"

src="themes/default/images/shopcart.jpg" type=image></DIV>

源码如上!结果按钮不在form里面还是可以提交!现在我要他们不能提交

第1个回答  2013-10-11
最简单的办法 你把按钮类型写成button而不是submit 再编写点击触发事件 这样就不会提交了
<input type="button" onclick = >追问

但是他的类型是图片啊

第2个回答  推荐于2016-11-05

默认input的type为image或者submit都会提交的。

<input type ="submit" onclick ="return false;"/>这样就会取消点击触发的默认事件

追问

您好!

src="themes/default/images/shopcart.jpg" type=image onclick ="return false;javascript:addToCart({$goods.goods_id});">

如果我这样写就不生效了!怎么样才可以生效了?那2个按钮要实现2个js效果的

追答<input type ="submit" onclick ="return addToCart();"/>
function addCart()
{
    ....xxxx
    return false;
}

追问

饿!我没有表达清楚!就是说我要这个按钮不提交表单! 但是我要用另外一个函数去提交表单!但是我直接这样写的话 就会提交2次表单了!现在我的要求是只提交我onclick 的内容

追答

没太明白你的意思。。
不提交的话return false即可
通过函数提交的话是 表单名ECS_FORMBUY.submit()

本回答被提问者采纳
第3个回答  2013-10-11
监听你form的submit事件,并且通过给匿名函数传参获取原生的事件对象,使用其preventDefault()方法实现对事件的拦截
第4个回答  2013-10-11
<input type="submit">
---->
<input type="button" onclick ="" >