2012-05-28 68 views
0

在一個名爲outputProducts功能我添加了一個提交按鈕,我的表:警報文本提交時檢測

$(addToCartCell).append("<input type='submit' id='addToCart' value='Add To Cart'>"); 

爲了檢查提交按鈕被按下我再拍功能:

function addToCart() 
{ 
    $(#addToCart).submit(function() { 
     alert('Submit Detected.'); 
    }); 
} 

但是這不起作用,並且之前在函數中創建的表格甚至不顯示,但是當我擺脫addToCart函數時,它確實如此。

+0

使用click()來代替submit()用於表單元素 $(#addToCart).click(function(){ – Chibuzo

+0

Bro只是提到你的代碼是正確的,你沒有提供所有關聯的代碼 - 參見這裏如何'提交'使用的人 - http://api.jquery.com/submit/希望這可以幫助 –

回答

5

你有一個語法錯誤,而不是$(#addToCart)你需要$('#addToCart')

除此之外,你需要將submit事件綁定到形式,而不是提交按鈕(你綁定click的按鈕,但因爲你想要做的事提交,裝訂提交事件到形式是要走的路)。

如果您沒有表單,請使用type="button",因爲無論如何都不會提交任何內容,並將click事件綁定到該按鈕。

如果您需要在之前綁定事件該按鈕存在,請使用委託。 #container應該是已經存在,並且是按鈕的父元素:

$('#container').on('click', '#addToCart', function() { ... }); 

而且因爲你似乎有多個產品,請記住,的ID必須是唯一的 - 所以,如果你有一個以上的按鈕,改爲使用類,並相應地將選擇器更改爲.addToCart

+0

我沒有表格,這只是一個表中的輸入按鈕 – RSM

+1

@Ryan墨菲,所以你應該使用'點擊'而不是'submit' – undefined

+0

如果你沒有表單,那麼在這種情況下你不應該使用'type =「submit」'按鈕,而只是'type =「button」' - 是的,綁定'click'。 – ThiefMaster

-1

請嘗試以下代碼

function addToCart() 
{ 
    $("#addToCart").live("submit", (function() { 
     alert('Submit Detected.'); 
    }); 
} 

注:我已經試過相同的,但既然你已經在運行時添加的元素,你需要將事件的目標元素進行綁定。

+0

如果他在創建按鈕後綁定它,他不需要實時事件。除此之外,綁定按鈕上的提交事件是沒有意義的。 – ThiefMaster

+0

好的沒有問題,即使我不是很清楚,但我知道輸入添加到HTML在運行時需要綁定事件。 – Murtaza

0

您有語法錯誤。試試$('#addToCart')

+0

是的,但這不是它不起作用的唯一原因。 – ThiefMaster

+0

請在您的答案更廣泛 –