テキスト入力がフォーカスを失うたびに、同じ JS 関数によって検証されるように、.onblur によって入力を検証する必要があります。
私の問題はJS関数にあります。フォーカスを失ったアイテムの値を取得したい。
function valid(){
if (isNaN("this should be the value of the text item??")){
}
ありがとう..
テキスト入力がフォーカスを失うたびに、同じ JS 関数によって検証されるように、.onblur によって入力を検証する必要があります。
私の問題はJS関数にあります。フォーカスを失ったアイテムの値を取得したい。
function valid(){
if (isNaN("this should be the value of the text item??")){
}
ありがとう..
ぼかしたときにアイテムの値を取得するには、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!');
};
この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
関数は、アタッチされたリスナーが既にある場合、新しい検証リスナーが既存のリスナーの後に呼び出されるようにすることです。