我想同时使用href和onclick,我在这里找到了一个解决方案: HTML tag <a> want to add both href and onclick working
在myFunction中,我创建一个调用perl组件的AJAX请求。
当我将Javascript调用放在href中时它工作正常,但在onclick中却没有。不幸的是,我不允许这个解决方案既不是jQuery,所以请你帮忙。
// AJAX Request doesn't work
<a href="www.mysite.com" onclick="myFunction();">Item</a>
<script type="text/javascript">
function myFunction () {
var xmlHttp = getXMLHttpObject();
xmlHttp.open('GET', 'perl.m', true);
return true;
}
</script>
// AJAX Request ok
<a href="javascript: myFunction('www.mysite.com')">Item</a>
<script type="text/javascript">
function myFunction (url) {
var xmlHttp = getXMLHttpObject();
xmlHttp.open('GET', 'perl.m', true);
window.location.href = goto_url;
}
</script>
perl.m:
<%init>
warn "perl.m";
... update ...
</%init>
答案 0 :(得分:2)
请仔细按照教程进行操作。它声明你必须输入这样的javascript(带有return关键字)。
<a href="www.mysite.com" onclick="return theFunction();">Item</a>
除此之外,您应该始终输入一个URL(如http://stackoverflow.com)。
如果这有助于您,请告诉我。
答案 1 :(得分:0)
尝试:
<a href="www.mysite.com" onclick="myFunction(event);">Item</a>
<script type="text/javascript">
function myFunction (e) {
e.preventDefault();
var xmlHttp = getXMLHttpObject();
xmlHttp.open('GET', 'perl.m', true);
return true;
}
</script>
因为你有href
attr和url,所以它会转到url并且你的ajax不受影响。
e.preventDefault()
是您的解决方案。