2016-05-12 6 views
0

新しい文字列値が有効であるかどうかに応じて、偽のtrueを返す抽象バリコールバックを想定JavaScript。バリデータ内のコードは、任意の種類のバリデータです。防止入力変化場合

私は人々がkeyupイベントを使用していくつかの文字が入力されないように見ました。これは欠陥のある方法であり、明らかに入力フィールド全体を検証することはできません。 (Javaのスイングは、C++ Qtは)これは、入力フィールドにバリデータのコールバックを割り当てるのと同じくらい簡単だった私が遭遇した最もGUIフレームワークでは

myInputField.addEventListener("input", function(e) { 
    console.log(e); 
    e.preventDefault(); 
    return false; 
    }); 

私は動作しません inputイベントをキャンセルしようとしました。 JavaScriptでこれをどうやって行うのですか?

+0

私は何かが不足していると思いますが、 'if(isValid(this.value))e.preventDefault();' –

+0

@ user6188402あなたはそのコードをテストして 'input'イベントをキャンセルすることはできません。 –

+0

しかし、テキストが変更された後に「入力」しませんか?あなたはおそらく 'keydown'と' isValid(this.value + String.fromCharCode(e.keyCode)) 'を使用したいと思うでしょう。 –

答えて

0

私はあなたにこのソリューションを提供します、あなたは何が必要に変更することができ、私は入力はあなたが他の検証方法に変更することができますので、任意の数の追加受け付けないこととします

<input type=text name=text id=myid> 
 

 
<script> 
 
    onload = function() { 
 

 
     var validate = document.getElementById('myid'); 
 
     validate.oninput = function(){ 
 
      var disabled =validate.value; 
 
      if(disabled.match(/\d+/g)){ 
 

 
    
 

 
var Newvalue = disabled.replace(/[0-9]/g, ''); 
 
validate.value= Newvalue; 
 

 
    }else{} 
 

 
      }; 
 
     validate.onpropertychange = validate.oninput; 
 
     validate.onchange = validate.oninput; 
 

 
     }; 
 
    </script>

+0

ありがとう - それを試しましたか?無効な入力の後、ユーザーのカーソル位置を最後に置いています。値を置き換えた後にユーザーのカーソル位置を復元すると、おそらく動作する可能性があります。 –

+0

私はあなたが必要とするものに依存しています。私は単純な例を挙げていますが、あなたは多くのことをすることができます –

関連する問題