0

有効な入力として数字のみを持つ必要があるいくつかの入力フィールドがあるため、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()関数が呼び出された要素の参照を取得する方法は? そして、対応するスパンを見えるようにする方法は? 何か案は ?

4

1 に答える 1

1
 var fld = theEvent.target || theEvent.srcElement;

ここでは、ID または兄弟ノードにアクセスできます

代わりに、または(これを)渡す場合は、フィールドがあります

于 2012-09-02T10:50:31.007 に答える