2016-04-20 7 views
0

私の入力は2つの機能があります。document.getElementById - onchangeイベントとはどのように動作しますか?

`isAllowedSymbol` and `checkLength`. 

isAllowedSymbolは素晴らしい取り組んでいるが、checkLengthではありません。私は自分の長さを10の数字だけ長くする必要があります。私は間違って何をしていますか?私のミスはどこですか?正確にこれを行う方法について私に助言してください。

type="text" maxlength="10" name="answer" id="t" onkeyup="isAllowedSymbol(this);" onchenge="checkLength(this);" placeholder="Enter data" > 

function checkLength(this) { 

    var element = document.getElementById('t'); 

    if(document.createEvent) 
    { 
     var e = document.createEvent('HTMLEvents'); 
     e.initEvent('change', false, true); 
     element.dispatchEvent(e); 
    } 
} 
+3

onchangeのhtml属性でtypo ... onchenge' – NewToJS

+0

ブラウザがすでに適用した 'maxlength'を使って' checkLength'する必要があるのはなぜですか? – haim770

+0

'this'は予約語で、コンテキストに応じて値を設定する特殊なメカニズムを持っているので、関数内のパラメータ名として使用することは無効です。 'checkLength()'の実装は意味をなさないように見えますが、単なる終了ではないかもしれません。 –

答えて

0

HTML5 maxlengthは入力内容を自動的に検証します。しかし、より多くのバリデーションをしたい場合は、onkeydownonchangeよりも使用してみてください。

HTML:

<input type="text" maxlength="10" name="answer" id="t" onkeyup="isAllowedSymbol(this)" onkeydown="checkLength(this)" placeholder="Enter data"> 

はJavaScript:

function checkLength(obj){ 
//Your validation code goes here. 
} 

希望これはあなたを助けます。

関連する問題