Javascript RubyonRails的jquery

Javascript RubyonRails的jquery,javascript,jquery,unobtrusive-javascript,Javascript,Jquery,Unobtrusive Javascript,我打算使用这段代码来转储原型以支持jQuery,但我确实遇到了一个问题 这是我的HTML链接,指向生成的链接: <a onclick="var f = document.createElement('form'); f.style.display = 'none'; this.parentNode.appendChild(f); f.method = 'POST'; f.action = this.href;var s = document.createElement('input');

我打算使用这段代码来转储原型以支持jQuery,但我确实遇到了一个问题

这是我的HTML链接,指向生成的链接:

<a onclick="var f = document.createElement('form'); f.style.display = 'none'; this.parentNode.appendChild(f); f.method = 'POST'; f.action = this.href;var s = document.createElement('input'); s.setAttribute('type', 'hidden'); s.setAttribute('name', 'authenticity_token'); s.setAttribute('value', 'Mi6RcR6YDyvg2uNwGrpbeIJutSHa2fYboU37wSDE7AU='); f.appendChild(s);f.submit();return false;" class="post add_to_cart " href="/line_items?product_id=547">Add to cart</a>
问题:

除了页面重新加载之外,其他一切都正常工作。我怀疑submit通过,导致页面重新加载

有没有一个优雅的方法来防止这种情况?返回false;在这种情况下,似乎无法解决问题。

ew。使用jQuery:

<a class="post add_to_cart" rel="Mi6RcR6YDyvg2uNwGrpbeIJutSHa2fYboU37wSDE7AU=" href="/line_items?product_id=547">Add to cart</a>
<script>
    $("a.add_to_cart").click(function(){
        $.post(this.href,{'authenticity_token':$(this).attr("rel")});
        return false;
    });
</script>
我将真实性令牌放在锚的rel attr中,假设该令牌对产品是唯一的

更新

因为显然Rails根本无法控制任何东西:

<a class="post add_to_cart" href="/line_items?product_id=547" onclick='            $.post(this.href,{"authenticity_token":"Mi6RcR6YDyvg2uNwGrpbeIJutSHa2fYboU37wSDE7AU="});return false;'>Add to cart</a>

整个onclick部分是由rails助手生成的,因此我不需要对其进行太多控制,我想将其保留在非javascript浏览器中。有没有办法在不改变html代码的情况下截获提交?我不知道rails的表现会如此糟糕。你想为非javascript浏览器保留什么?javascript?你提供的方法仍然很突出,我不想手动构建我的链接,我只想覆盖rails助手构建的默认链接。另外,如果您在浏览器中禁用javascript,该链接将不会传递令牌。您确实意识到您所要求的是不可能的。锚元素在没有javascript的情况下无法执行表单POST。只需将auth令牌放在url中。