0

テキスト入力がフォーカスを失うたびに、同じ JS 関数によって検証されるように、.onblur によって入力を検証する必要があります。

私の問題はJS関数にあります。フォーカスを失ったアイテムの値を取得したい。

function valid(){
if (isNaN("this should be the value of the text item??")){

}

ありがとう..

4

2 に答える 2

1

ぼかしたときにアイテムの値を取得するには、onBlur次のようにDOM要素にトリガーを追加する必要があります。

<input type="text" name="validate_me" onBlur="valid(this);" />

これにより、イベントをトリガーしたDOM要素にonBlurアクセスし、そのプロパティ(要素など、valueまたは要素innerHTMLの場合)にアクセスできますtextarea

そのvalid場合、関数は次のようになります。

function valid(element) {
  if (element.value != '' && isNaN(element.value))
    alert('This field is not valid!');
};
于 2013-02-19T15:41:32.480 に答える
0

このJavaScriptは、あなたが求めていることを行う必要があります:

(function(){
    var after = function(existing,after) {
        if ( existing == null || typeof existing !== 'function' ) {
            return after;
        }
        else {
            return function() { existing(arguments); after(arguments); }
        }
    }

    var validate = function(input) {
        alert('validating ' + input.name);
    }

    window.onload = after(window.onload, function() {
        var inputs = document.getElementsByTagName('input');
        for (var i = 0; i < inputs.length; i++) {
            if ( inputs[i].type === 'text' ) {
                inputs[i].onblur = after(inputs[i].onblur, function() {
                    validate(this);
                });
            }
        }
    });
}());

明らかに、検証関数のアラートを検証ロジックに置き換える必要がありますが、これは要求どおりに機能するはずです。

いくつかの注意点として、すぐに呼び出される関数は、グローバルを壊さないようにすることです。after関数は、アタッチされたリスナーが既にある場合、新しい検証リスナーが既存のリスナーの後に呼び出されるようにすることです。

于 2013-02-19T17:02:39.090 に答える