2012-11-07 31 views
0

調用方法‘的toString’我對我的jQuery腳本得到一個錯誤:jQuery的單擊事件錯誤:「類型錯誤:無法在不確定的

TypeError: cannot call method 'toString' on undefined

$("input.buttonConfirmOrder").click(function (e) { 
    e.preventDefault(); 
    //do some stuff with the order 
    return false; 
}); 

誤差在alertbox彈出

我不會在任何時候使用toString,錯誤,當我點擊鏈接彈出,那就是打功能的第一行之前:

e.preventDefault(); 

按鈕調用事件看起來是這樣的:

<input type="submit" name="ctl00$mainContent$ButtonConfirmOrder" value="Pay" id="ctl00_mainContent_ButtonConfirmOrder" class="buttonConfirmOrder confirmButton"> 

我已經嘗試了所有的以下內容:

  • $("input.buttonConfirmOrder").on("click", function(e) { /...
  • $ = jQuery;
  • jQuery.noConflict();
+1

看起來像它的工作http://jsfiddle.net/T2d24/ – 2619

+0

爲什麼你有一個'提交'不應該提交?爲什麼不是'button'呢? – st3inn

回答

1

你的選擇與您的bu上的CSS類不匹配tton。它應該是:

$("input.buttonConfirmOrderDIBS").click(function (e) { 
    e.preventDefault(); 
    //do some stuff with the order 
    return false; 
}); 
+0

對不起,這不是問題。我只是在發佈代碼塊時犯了一個錯誤。現在編輯。 – kumaheiyama

0

我做了一個小提琴來檢查這一點,它的工作原理:

http://jsfiddle.net/picklespy/rZ4ZT/2/

HTML

<input type="submit" name="ctl00$mainContent$ButtonConfirmOrder" value="Pay" 
     id="ctl00_mainContent_ButtonConfirmOrder" 
     class="buttonConfirmOrder confirmButton"> 

的Javascript:

$("input.buttonConfirmOrder").click(function (e) { 
    e.preventDefault(); 
    alert($(this).val()) 
    //do some stuff with the order 
    return false; 
}); 
+0

謝謝,但這並不能真正解決問題。這是我的代碼的確切副本。這使問題更加神祕... – kumaheiyama

+0

@kumaheiyama在這種情況下,問題可能是'javascript'代碼在html中的''button'之前運行。請確保javascript代碼在html中聲明後運行。把這段代碼放在結束標籤之前。 –

+0

不,沒有代碼在body標籤後面運行。但是很可能是因爲我的jQuery腳本之前運行的代碼出現問題。它很奇怪,但它只發生在按下按鈕時,而不是在加載頁面時發生。 – kumaheiyama

0

如果您唯一的目的是防止默認提交操作。然後將屬性onsubmit=return false;添加到提交按鈕的容器形式。不需要做e.preventDefault()

+0

正如我寫的,問題不是e.preventDefault()。錯誤發生在代碼甚至運行之前,而是一旦按下按鈕。 – kumaheiyama

相關問題