2017-09-06 8 views
1

動的に生成される入力フィールドのセットがあるため、IDは使用できません。入力フィールドのそれぞれについて、私は、エンドユーザによって入力された値を有効にするフォーカスアウト方法を有する。 検証に失敗した場合、私は入力の値をクリアし、同じ入力にフォーカスを戻したいと思います。私はこのキーワードスコープを使用しようとすると、入力コントロールではなくウィンドウに設定されているようです。このキーワードが動作するようには思えない、上記のコードでこれを使用して入力セレクタを取得

Input fields screenshot

function validate(reg){ 
debugger; 
if(isNaN(reg)==false){ 
    return; 
} 
else 
{ 
    alert("The field should contain number"); 
    $(this).val(""); //clear the value 
    $(this).focus(); 
} 
} 

入力はスクリーンショットフィールド。

+0

を呼び出しているところから? – jANVI

+0

入力フィールドから、onfocusoutイベントでこのメソッドが呼び出されます –

+0

リスナーの呼び出し/接続の正確なコードを表示してください。失敗の原因があります。 – Teemu

答えて

0

イベントをvalidate()に渡してから、event.targetを使用して入力要素をターゲットにすることができます。

function validate(reg, e){ 
 
debugger; 
 
if(isNaN(reg)==false){ 
 
    return; 
 
} 
 
else 
 
{ 
 
    alert("The field should contain number"); 
 
    $(e.target).val(""); //clear the value 
 
    $(e.target).focus(); 
 
} 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input onfocusout="validate(this.value, event)"/> 
 
<input onfocusout="validate(this.value, event)"/> 
 
<input onfocusout="validate(this.value, event)"/>

これはあなたが達成しようとしているのは何ですか?

+0

ありがとうございました。 Teemuが示唆したように、私はイベントを通過していませんでした。 –

0

別の方法:uは検証

$(document).ready(function() { 
 
    var inputs = document.querySelectorAll("input[type=text]"); 
 
    for (i = 0; i < inputs.length; i++) 
 
     inputs[i].addEventListener("focusout", function() { validate(this); }); 
 
}); 
 

 
function validate(reg) { 
 
    if (isNaN($(reg).val()) == false) { 
 
     return; 
 
    } 
 
    else { 
 
     alert("The field should contain number"); 
 
     $(reg).val(""); //clear the value 
 
     $(reg).focus(); 
 
    } 
 
}
<input type="text" value="" /> 
 
<input type="text" value="" /> 
 
<input type="text" value="" /> 
 
<input type="text" value="" />

関連する問題