2011-10-24 14 views
0

これは私たちの教授の例であり、私のHTMLは錆びているので、何が起こっているのか正確にはわかりません。 JavaScriptがJavascript、window.event、フォーム検証

<input type="text" name="widgets" id="widgets" size="2" value="0" onchange="calc();" onkeypress="return isNumberInput(this, event);" /> 

function isNumberInput(field, event) 
{ 
var key, keyChar; 
if (window.event) 
key = window.event.keyCode; 
else if (event) 
key = event.which; 
else 
return true; 
// Check for special characters like backspace 
if (key == null || key == 0 || key == 8 || key == 13 || key == 27) 
return true; 
// Check to see if it.s a number 
keyChar = String.fromCharCode(key); 
if (/\d/.test(keyChar)) 
{ 
window.status = ""; 
return true; 
} 
else 
{ 
window.status = "Field accepts numbers only."; 
return false; 
} 

誰かが何が起こっているかを説明することができ、フォーム入力の場合
?私はwindow.event、event.which、wondow.event.keyCodeなどにあまり慣れていません。私は本当にロジックを理解していません。 TIA!

+0

https://developer.mozilla.org/en/DOM/event – SLaks

+0

またはjQueryを使用する – SLaks

答えて

0
var key, keyChar; // declare variable to be used 
if (window.event) // window.event Microsoft uses window.event. Does it exist? If so continue 
    key = window.event.keyCode; // Microsoft uses window.event.keyCode to get the key the was pressed 
else if (event) // other modern browsers will create an event object for you to use 
    key = event.which; // event.which is the key that was pressed 
else // else we can't get to the key maybe this is a full text browser? Anyways, no good exit function 
    return true; 
0

基本的に、このコードは、ユーザーがテキストフィールドに数字以外のものを入力できないようにします。この関数は、ユーザーがキーストロークを入力できるようにするにはtrueを返し、それを防ぐにはfalseを返します。また、特殊文字も使用できます。

あなたを混乱させる限り、これは古いバージョンのNetscapeとIE用に設計された、本当に古いコードです。最新のブラウザでは、event.keyCodeを使用することができますが、Netscapeはevent.whichを使用していましたが、IEではwindow.eventを使用する必要がありました。現代のブラウザでは、ステータスバーも隠されているため、window.status行は役に立たなくなります。

関連する問題