2017-09-06 5 views
1

동적으로 생성되는 입력 필드 집합이 있으므로 ID를 사용할 수 없습니다. 각 입력 필드에 대해 최종 사용자가 입력 한 값의 유효성을 검사하는 focusout 메서드가 있습니다. 유효성 검사가 실패하면 입력 값을 지우고 포커스를 동일한 입력으로 되돌리고 싶습니다. 이 키워드 범위를 사용하려고하면 입력 컨트롤이 아닌 창으로 설정되는 것 같습니다. 이 키워드가 작동하지 않는 것, 위의 코드에서이것을 사용하여 입력 선택 자 가져 오기

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

또 다른 방법 : 유 검증

$(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="" />