web-dev-qa-db-ja.com

Blurイベントで値が変更されているかどうかを確認できますか?

基本的には、値が変更されていない場合は、Blurイベントをキャンセルしたい場合は、[Blur]イベントのTextBoxで値が変更されているかどうかを確認する必要があります。

それを確認することが可能ならば、値は、入力HTML要素のBlurイベントでユーザーによって変更されますか?

16
pencilCake

私はこれを行うためのネイティブ方法があるとは思わない。私がすることは、現在の値を要素に添付されている変数に保存するfocusイベントに関数を追加します(element.oldValue = element.value)。あなたはその価値のOnblurをチェックすることができます。

28
Pekka

このコードを使用できます。

var Old_Val;
var Input_Field = $('#input');

Input_Field.focus(function(){
     Old_Val = Input_Field.val();
});

Input_Field.blur(function(){
    var new_input_val = Input_Field.val();
    if (new_input_val != Old_Val){
          // execute you code here
    }
});
 _
1

このようなもの。 Kevin NADSADYを使用して

this.value!= this.defaultValue.

私は入力の束に共有CSSクラスを使用してから次のようにします。

    for (var i = 0; i < myInputs.length; i++) {
        myInputs[i].addEventListener('blur', function (evt) {
            if(this.value!=this.defaultValue){
                //value was changed now do your thing
            }
        });
        myInputs[i].addEventListener('focus', function (evt) {
            evt.target.setAttribute("value",evt.target.value);
        });
    }
 _
0
Ronnie Royston