如何停止默认的href动作

时间:2012-11-25 06:10:24

标签: javascript html jsp javascript-events href

我的JSP中有以下格式的代码。

<a href="javascript:submit()">sumbit</a>

在按下链接后,我的表单会被提交。但是,我需要阻止默认的href行为,只需要调用submit函数。submit函数提交表单

我尝试通过jQuery捕获HREF上的click事件,然后触发e.preventDefault()。在此之后,我已经选择了HREF属性,然后完成eval()来启动该功能。    但是,我无法停止默认的HREF功能,并且新页面始终保存在浏览器缓存中。

我也没有手动进入和更改代码的自由。请建议。

更新

代码的问题是:

<a href="javscript:submit()">submit</a>

是JSP中使用的HREF示例之一。使用上述格式可能会调用不同类型的函数:

我使用了下面的jQuery:

$("a[href^=\'javascript\']").live('click',function(e)
{
     e.preventdefault();
     eval($(this).attr('href'));
     return false;
});

但是,这并不会停止默认的HREF功能。我错过了什么?

2 个答案:

答案 0 :(得分:1)

正如您在问题中提到的,您无法手动更改标记。

所以,我想,这就是你真正想要的。

<form id='myform' action=''>
</form>
<a href="javascript:submit()">submit</a>​
​

JS:

 function submit() {
   document.getElementById('myform').submit();
 }


 jQuery(function() {
    $('a').click(function() {
         var href = $(this).attr('href').replace('javascript:','');
         console.log(href); 
         alert('hi');
         eval(href);        
         return false;
     });
 });​

Demo

<强>更新

您可以使用eval(href)

来避免window[href]();

请参阅此Demo

答案 1 :(得分:-1)

尝试:

<a href="#" onclick="submit()">sumbit</a>