我的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功能。我错过了什么?
答案 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;
});
});
<强>更新强>
您可以使用eval(href)
window[href]();
请参阅此Demo
答案 1 :(得分:-1)
尝试:
<a href="#" onclick="submit()">sumbit</a>