'undefined'不是函数(评估'$(document).on')

时间:2013-09-13 19:56:18

标签: javascript jquery

我正在尝试使用此脚本:

<script>
var original_value = Number($('#ProductPrice').text().replace(/[^0-9.]+/g,""));

$(document).on('keyup', '#ProductPrice', function() {
if (Number($('#ProductPrice').text().replace(/[^0-9.]+/g,"")) > original_value) {
    $("#ProductPrice").css("color","red");
} else {
    $("#ProductPrice").css("color", "black");   
}
});
</script>

我一直收到错误:'undefined'不是函数(评估'$(document).on')

帮助?

3 个答案:

答案 0 :(得分:2)

我觉得你在没有冲突模式中有jQuery,这意味着$没有分配给jQUery

您可以像这样调用您的代码:

(function ($) {
    var original_value = Number($('#ProductPrice').text().replace(/[^0-9.]+/g, ""));
    $(document).on('keyup', '#ProductPrice', function () {
        if (Number($('#ProductPrice').text().replace(/[^0-9.]+/g, "")) > original_value) {
            $("#ProductPrice").css("color", "red");
        } else {
            $("#ProductPrice").css("color", "black");
        }
    });
})(jQuery)

您也可以将所有$替换为jQuery;

答案 1 :(得分:0)

假设您在文本框中将该值作为用户的输入。 您需要为输入类型文本提供值而不是文本。

var original_value = Number($('#ProductPrice').val().replace(/[^0-9.]+/g,""));

$(document).on('keyup', '#ProductPrice', function() {
if (Number($('#ProductPrice').val().replace(/[^0-9.]+/g,"")) > original_value) {
    $("#ProductPrice").css("color","red");
} else {
    $("#ProductPrice").css("color", "black");   
}
});

这对我来说很好。

答案 2 :(得分:0)

好像你可能在无冲突模式下加载jQuery,或者根本不加载它。

看到这个问题&amp;我对它的回答:

jQuery Uncaught TypeError: Property '$' of object [object Window] is not a function