標題の件、予め、数値のみの入力制御、カンマ表示、フォーカス時の数値表示化を施したテキスト枠があります。(以下要領で)

$("input[name=amount]").on({
    "keydown": function(e) {
        var k = e.keyCode;
        if (!((k >= 48 && k <= 57) || (k >= 96 && k <= 105) || k == 32 || k == 8 || k == 9 || k == 46 || k == 39 || k == 37)) {
            return false;
        }
    },
            "blur": function() {
        var num = $(this).val();
        num = num.replace(/(\d)(?=(\d\d\d)+$)/g, "$1,");
        $(this).val(num);
            },
            "focus": function() {
        var num = $(this).val();
        num = num.replace(/,/g, "");
        $(this).val(num);
    }
});

こちらの枠の内容がクリアされた際、近隣のラベル要素に表示された内容も自動でクリアされるようコーディングしているつもりですが、作用してくれません。
(数量の入力枠をクリアしたら、単価表示をクリア、ということを達成したいです)

当該枠に関わる動作が全く制御できていないわけではありません。
検知できている条件式と、検知できていない条件式があるようです、
以下Blurイベント内の、動作できている部分、動作できていない部分をコメントで記載しています。

//数量のテキストボックスからフォーカスが外れたら
$("input[name=amount]").on("blur",function() {
    //0の入力は拒む ⇒【動作OK】
    if ($(this).val() == 0) {
        $(this).val("");
        return false;
    }
    //TD要素まで遡り、下方向にテキスト要素・ラベル要素を取得。
    //指数指定で、品名コード枠と原価単価枠のラベルを捉える。
    var input = $(this).parent().parent().find("input");    //品名コード枠
    var maker_val = input.eq(0).val();
    var label = $(this).parent().parent().find("label");    //原価単価枠

    //品名コード枠の入力が先行されている必要あり ⇒【動作OK】
    if (maker_val == "" && $(this).val() != "") {
        $(this).val("");
        return false;
    }
    //数量枠をクリアされたら、単価表示をクリア ⇒******【動作できない】*******
    if (maker_val != "" && $(this).val() == "") {
        alert("***なんで***"); // 『表示もされない』
        label.eq(3).html("");
        return false;
    }
    //品名コード枠の入力と数量枠が1以上の入力で、単価を表示 ⇒【動作OK】
    if (maker_val != "" && $(this).val() != "") {
        $.ajax({
            url: "cdcostget.php",
            type: "POST",
            dataType: "json",
            data: {
                maker_no: maker_val,
                maker_no2 : costGetYM()
            }
        })
    以下 省略

====質問====
上記コーディング内の******【動作できない】******と記載した部分は、
なぜキーボード(DELETE・BackSpaceキー)で内容をてクリアが達成されても、働いてくれないのでしょうか?(.val()==""では聞き方が間違っているのでしょうか、それとも何か残っているのでしょうか?)

大変初歩的な質問と思われますが、何卒よろしくお願い申し上げます。