2010-04-21 269 views
0

我打算使用此代碼http://gist.github.com/110410轉儲Prototype贊成jQuery,但我確實有問題。在軌道上的紅寶石jquery

這是我的HTML(一的link_to生成的鏈接):

<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> 

問題:

一切正常,因爲它應該除了頁面做了重裝。我懷疑提交通過導致頁面重新加載。

有沒有一種優雅的方式來防止這種情況?返回false;在這種情況下似乎沒有削減它。

回答

0

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> 

我把真實性令牌在相對ATTR的錨假設令牌是獨一無二的產品。


UPDATE

因爲很顯然的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> 
+0

整個的onclick部分由軌輔助生成,所以我不必得多控制也,我想保持它非JavaScript的瀏覽器。有沒有一種方法來攔截提交而不改變我的HTML代碼? – Cezar 2010-04-22 09:21:32

+0

我不知道鐵軌太糟糕了。 – 2010-04-22 12:23:45

+0

你想保留非JavaScript的瀏覽器? javascript?這沒有意義。 – 2010-04-22 12:28:46