【发布时间】:2011-03-14 22:02:09
【问题描述】:
希望你能帮助我。我有这样的html标记:
<a href="error.htm" class="button" id="_uiStart" style="-moz-border-radius: 4px 4px 4px 4px;">
<span>Start</span>
<input type="text" id="_uiCode">
</a>
通常,当用户单击文本框时,页面会重定向到“error.htm”。我想防止这种情况发生,所以我使用 jQuery 来取消它:
$(document).ready(function() {
var mute = function(event){
event.stopPropagation();
};
$('a.button input').click(mute)
.mousedown(mute)
.mouseup(mute);
}
但是,这不起作用,点击仍然由锚点处理并重定向到“error.htm”。
请帮忙,谢谢。
【问题讨论】:
-
首先是什么导致了重定向?也许您可以取消绑定导致重定向的任何事件?
-
请问为什么
a首先包装输入,是否有特定原因为什么在javascript处于活动状态时链接仍然有效? -
重定向是由锚点接收点击并执行它的默认操作引起的,我有 99% 的把握。
-
@Kristoffer:a 是按钮,它应该在用户点击时执行一些操作,特别是它应该检查文本输入的有效性,如果它无效则通知用户,如果是则重定向。
-
我附加了一个只调用 preventDefault() 的锚点单击处理程序,它处理了锚点重定向问题,但是现在,我可以专注于文本框并让插入符号出现,但我可以'不要选择其中的文本。
标签: jquery html events input anchor