2

ユース ケースは、いくつかの計算を行うための Web アプリ フォームです...他に何が新しいのか...

通常、ユーザーが NaN 条件を作成する値を入力した場合、値を 0 にオーバーライドして NaN を回避します。これは正常に機能し、すべてが機能し続け、NaN の伝播を防ぎます。

しかし、機能的にこれは理想的ではありません。理想的な方法は、単に change() イベントをキャンセルして、以前の値を復元することです。イベントを中断することは大したことではありませんが、データ/バインディングなどに頼らずに以前の入力値が復元/維持されるようにする方法はありますか?

私の理由は次のとおりです。「change()」は、変更が発生したことを判断するために値の前後の比較を行っているため、入力の前の値を認識している必要があります。この以前の値を change() からキャプチャすることは可能ですか? それが問題だ。

4

2 に答える 2

0

変数を使用して以前の値を保存し、値に応じて変更することができます。次のようになります。

var input = $("input#text_input");
var prev_val = null;
input.on("change", function(){
    var val = $(this).val();
    if(isNaN(val)) {
        input.val(prev_val);
        return(false);
    } else {
        prev_val = val;
        // Other stuff
    }
});
于 2013-06-30T23:04:31.180 に答える