我想停止重新加载页面的表单提交按钮。这适用于Firefox 3.6,Safari 5和Opera。但Chrome 5并未阻止此链接。
这是表格。
<form class="container_7" id="find-store-all" action=" ">
<label for="customer-loc" class="grid_3">Find a Store Near You:</label>
<input name="customer-loc" id="customer-loc" class="grid_3" type="text" placeholder="zip code or address" />
<button type="submit" id="customer-loc-sub" class="grid_1" >Enter</button>
</form>
我正在使用事件委派来管理点击。这是JavaScript。
document.onclick = handleClick;
function handleClick(e){
if(!e) var e = window.event;
var target = e.target || e.srcElement;
switch(target.id){
case "customer-loc-sub" :
e.preventDefault();
findClosestStoreOne();
break;
}
}
任何建议都将不胜感激。
答案 0 :(得分:5)
preventDefault()
不是阻止浏览器在此类DOM 0事件处理程序中的默认行为的最佳方法,因为它当然不能在IE和其他浏览器中工作。只需使用return false;
代替。适用于所有浏览器。
document.onclick = handleClick;
function handleClick(e){
if(!e) var e = window.event;
var target = e.target || e.srcElement;
switch(target.id){
case "customer-loc-sub" :
findClosestStoreOne();
return false;
}
}
答案 1 :(得分:0)
解决了这个问题。还有另一个事件(整个脚本大约有900行)正在影响这个。谢谢你的帮助。特别是瑞恩凯纳。他的评论让我从另一个角度看问题......可以这么说。