0

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

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

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

我尝试通过 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 功能。我错过了什么?

4

2 回答 2

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;
     });
 });​

​</p>

演示

更新:

你可以避免eval(href), 通过使用window[href]();

看这个演示

于 2012-11-25T06:39:29.497 回答
-1

尝试:

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

于 2012-11-25T06:23:05.780 回答