HTML代码<a> with both href and onclick and AJAX Request</a>

时间:2014-08-08 06:53:29

标签: javascript html ajax perl tags

我想同时使用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>

2 个答案:

答案 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()是您的解决方案。