この記事では、入力時間形式を制御するJavaScriptの方法について説明します。参照のためにそれを共有してください。特定の分析は次のとおりです。
主にキーダウンイベントとキーアップイベントを使用して、時間形式を制御するためにJavaScript入力を作成していましたが、文章は非常に複雑でバグがあると感じました。
今日、キープレスイベントとキーダウンとキーアップの違いについて学びました。それはほぼ次のとおりです(現時点ではとても知っています):
キーダウン:キーが押されたときにトリガーされます。イベントを通じて、キーコードを取得し、テキストボックスに入力する前に値を取得できます。
KeyUp:キーがポップアップされたときにトリガーされます(リリース)。キーコードはイベントを通じて取得でき、テキストボックスからの入力後の値を取得できます。
キープレス:このイベントは基本的にChromeとIEで同じですが、Firefoxは少し異なります。
1。ChromeおよびIEで:キープレスがテキストボックスに文字を表示できる限り、トリガーされます(入力文字、数字、記号など)、キーコードはイベントを通じて取得でき、イベントは未定義です。キャラクターが表示されない場合、トリガーされません(矢印キー、ホーム、バックスペースなど)
2。Firefox:文字、数字、シンボル、方向、バックスペースなどのキーはすべてトリガーできます。キー名はevent.keyから取得できます。キープレスが文字を出力できる場合、event.keycodeは0です。文字が出力できない場合、event.keycodeは対応するASCIIコードです。
トピックに戻って、最初にコードを見てください(上記のイベントは、次のコードのEに相当します):
コードコピーは次のとおりです。VARISFF= /Firefox/i.test(navigator.useragent);
$( "input")。on({
keyup:function(e){
!/^[/d:]+$/。test(e.target.value)&&(e.target.value = "");
}、
キープレス:function(e){
if(isff && e.keycode!== 0){
/// firefoxのキーを押すとキープレスイベントがトリガーされますが、IE/Chromeでは文字を出力できるキーのみがトリガーされます
/// firefox、e.keycode!== 0バックスペース、方向、ホーム、その他のキーの1つを押します。
} それ以外 {
if(e.target.value.length> 7)
falseを返します。
if(//d {2 }$/.test(e.target.value)){
e.target.value += ':';
}
var char = string.fromcharcode(e.keycode === 0?E.
if(!/^/d/.test(char))
falseを返します。
}
}
});
ISFF && E.Keycode!== 0は、Firefoxに文字を出力できるキーと、文字を出力できないキーを区別するために使用されます。 FirefoxのE.Keycodeは必ずしも値を取得するとは限らないため、代わりに使用されます。
KeyUpは、入力方法を使用するときに中国語または文字を入力できるという問題に対処するために使用されます。
string.fromCharcode()を使用して、ASCIIコードに対応する文字を取得します。
この記事がみんなのJavaScriptプログラミングに役立つことを願っています。