jQuery单击事件错误:“TypeError:无法在未定义时调用方法'toString'

时间:2012-11-07 08:53:45

标签: javascript jquery

我的jQuery脚本出错:

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

警告框中会弹出错误:

  

TypeError:无法在未定义的

上调用方法'toString'

我在任何时候都没有使用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();

3 个答案:

答案 0 :(得分:1)

您的选择器与按钮上的CSS类不匹配。它应该是:

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

答案 1 :(得分: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;
});

答案 2 :(得分:0)

如果您的唯一目的是阻止默认提交操作。然后将属性onsubmit=return false;添加到提交按钮的容器表单中。无需执行e.preventDefault()