场景:我正在尝试使用JavaScript在我的HTML表单中使用图像按钮:
<form method="post" name="delete">
<input type="image" name="{{a.id}}"
src="http://localhost:8000/site_media/web/img/delete_icon.gif"
onClick="decision(this,'Delete this Activity?','http://localhost:8000/delAct/listAct')"/>
</form>
这是我的剧本:
<SCRIPT LANGUAGE="Javascript">
<!---
function decision(selectobject, message, url){
if(confirm(message)) location.href = url+"/"+selectobject.name ;
}
// --->
</SCRIPT>
问题是它没有像预期那样重定向到页面delAct/listAct
。所以我尝试将其更改为使用type="button"
并且它工作正常:
<form method="post" name="delete">
<input type="button" name="{{a.id}}"
onClick="decision(this,'Delete this Activity?','http://localhost:8000/delAct/listAct')"/>
</form>
我的问题是如何使用type="image"
让第一个脚本工作?有没有办法做到这一点?
顺便说一下:我已经尝试过表单中的get
和post
方法,但没有任何区别。另外,我在我的项目中使用Python 2.6和Django。
答案 0 :(得分:1)
您遇到的问题是使用input
类型的图片会创建一个看起来像图像的提交按钮,因此当点击它时,表单会被提交到您所在的同一页面,因为{{1 }}标记未指定<form>
属性。为了防止提交被触发,您需要从决策事件处理程序返回action
,这将阻止事件冒泡。