少し前にHTMLとCSSを学び、この分野に興味を持ち、JavaScript(第3版)で高度なプログラミングを学び始めました。私は最近学んでいて、イベントの内容を学び、スクリプトをフォームしています。数日前、先生は私にコードを書くように頼みました。JavaScriptフォームで、Enterキーと左下に移動キーを使用して、1つのテキストボックスから前または次のテキストボックスにフォーカスを移動します。これまでに学んだ知識を使用してコードを作成しようとしました。書面でいくつかの困難に遭遇しました。弾性率の計算。これと引数を使用して、関数内のトリガーイベントを見つけます。 AddHandler()メソッドを使用して、イベントハンドラーをイベントに追加します。教師の助けを借りて、私は上記の問題を解決しました。私はこのコードを通して多くの知識を学んだと感じたので、それを整理した後にコメントを書き、それを公開しました。
コードコピーは次のとおりです。
<html>
<head lang = "en">
<メタcharset = "utf-8">
<title> </title>
</head>
<body>
<form>
<div> <入力型= "text"> </div>
<div> <入力型= "text"> </div>
<div> <入力型= "text"> </div>
<div> <入力型= "text"> </div>
<div> <入力型= "text"> </div>
<div> <入力型= "submit"> </div>
</form>
<スクリプト>
関数is_down(e){
var isdown;
e = e || window.event;
switch(e.keycode){
ケース13://キーを入力します
ケース39://キーを右に移動します
ケース40://キーを下に移動します
isdown = true;
壊す;
ケース37://キーを左に移動します
ケース38://キーを上に移動します
iSDown = false;
壊す;
}
返品isdown;
}
function key_up(){
//関数を呼び出すと、関数自体がこれと引数を生成します
//これと引数を使用して、それぞれフィールドとトリガーイベントを見つけます
var e = arguments [1];
return is_down(e)=== undefined? True:handle_element(this、is_down(e));
}
function handle_element(field、is_down){
var Elements = field.form.elements;
for(var i = 0、len = elements.length-1; i <len; i ++){
if(field ==要素[i]){
壊す;
}
}
i = is_down? (i + 1)%len:(i -1)%len;
//(0 === i && is_down) - >ダウンキーを押して、最後のテキストボックスが獲得された後にフォーカスを取得します
//(-1 === i &&!is_down) - >最初のテキストボックスが焦点を合わせた後にアップキーを押します
if((0 === i && is_down)||(-1 === i &&!is_down)){
trueを返します。
}
要素[i] .focus();
var element_arr = ['button'、 'submit'、 'reset'、 'select-one'、 'textarea'];
if(element_arr.join( '、')。indexof(elements [i] .type)> -1)
要素[i] .select();
falseを返します。
}
//キャンセルデフォルトの提出フォームイベントを入力します
document.onkeydown = function(e){
e = e || window.event;
if(e.keycode == 13){
E.PreventDefault? e.preventdefault():(e.returnValue = false);
}
};
// addeventlistenerとadcationevent(ie)をブラウザー全体に認識します
関数addhandler(要素、タイプ、ハンドラー){
if(element.addeventlistener)
Element.AddeventListener(タイプ、ハンドラー、False);
else if(element.attachevent)
element.attachevent( "on" + type、handler);
それ以外
要素["on" + type] =ハンドラー;
}
var Elements = document.forms [0] .Elements;
for(var i = 0、len = elements.length; i <len; i ++){
//キーアップイベントにkey_upイベントハンドラーを追加します
addhandler(elements [i]、 "keyup"、key_up);
}
</script>
</body>
</html>
上記はコードのすべてのコンテンツです。私は個人的に、執筆は非常に包括的であり、考慮すべきすべてのことが処理されていると感じています。みんなが気に入ってくれることを願っています。