1

私はこのスクリプトを使用しようとしています:

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

エラーが発生し続けます:「未定義」は関数ではありません (「$(document).on」を評価しています)

ヘルプ?

4

3 に答える 3

2

jQuery がno conflict modeになっているような気がします。つまり、$ が 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;に置き換えることもできます。

于 2013-09-14T07:12:32.363 に答える
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");   
}
});

これは私にとってはうまくいきます。

于 2013-09-13T20:03:22.357 に答える
0

jQuery を非競合モードでロードしているか、まったくロードしていないようです。

この質問とそれに対する私の答えを見てください:

jQuery Uncaught TypeError:オブジェクト[オブジェクトウィンドウ]のプロパティ '$'は関数ではありません

于 2013-09-13T20:07:06.613 に答える