有効な入力として数字のみを持つ必要があるいくつかの入力フィールドがあるため、SO を検索した後、次の js コードを取得して、テキスト フィールドに数字のみを入力できるようにしました。これは非常にうまく機能しています。
function onlyNumbers(evt) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode( key );
var regex = /[0-9]|\./;
if( !regex.test(key) ) {
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
// the corresponding span to make it visible here
// What code to put here ?
}
}
対応するhtmlは
<input type="text" id="age1" onkeypress="onlyNumbers(event)" />
<input type="text" id="mobileNo" onkeypress="onlyNumbers(event)" />
今、span
無効な文字が入力されるとすぐに表示したい、そのような各入力テキストの後に隠しがありますか? そういう分野が多いから
たとえば、age1、age2、mobileNo など、それぞれに独自の兄弟スパンがあります。そのため、age1 の入力が間違っている場合、対応するエラー メッセージ スパンが表示されるはずです。
参照用の最小限の完全な HTML コードを次に示します。
<form method="POST" action="action.php">
...
<li>Age of person 1 :
<input type="text" id="age1" onkeypress="onlyNumbers(event)" />
<span class="error_msg age1"> Only numbers please </span>
</li>
<li>Age of person 2 :
<input type="text" id="age2" onkeypress="onlyNumbers(event)" />
<span class="error_msg age2"> Only numbers please </span>
</li>
<li>
<input type="text" id="mobileNo" onkeypress="onlyNumbers(event)" />
<span class="error_msg mobileNo"> Only numbers please </span>
</li>
...
</form>
onlyNumbers()
関数が呼び出された要素の参照を取得する方法は? そして、対応するスパンを見えるようにする方法は? 何か案は ?