2012-04-09 3 views
0

jQuery를 사용하여 동적 컨트롤을 만든 폼이 있습니다. jQuery를 사용하여 컨트롤에 대한 유효성 검사를 적용했습니다. 나는 blur 이벤트에 대한 컨트롤을 검증하고 있습니다. 여기서 문제는 블러 이벤트에서 유효성 검사가 실패한 동일한 컨트롤에 포커스를 설정해야한다는 것입니다.흐림 이벤트, JQuery에서 유효성 검사가 실패한 동일한 컨트롤에 포커스 설정

나는 이런 식으로 뭔가를했을 : propVal1가 동적으로 생성 된 입력 컨트롤을 나타냅니다

$(propVal1).blur(function() { 
    if(!ValidateNumber(this, propName1)) { 
     alert('Value should be numeric in ' + propName1); 
     setTimeout(function() {$(this).focus();}, 1); 
    } 
}); 

는 propName1는 속성의 문자열 이름입니다.

+0

왜 지금 당신을 위해 일하지 않으셨습니까? –

+0

우리는 propVal1이라는 문자열을 볼 수 있습니까? –

+0

예, 유효성 검사가 올바르게 시작되어 속성 이름이 올바르게 표시되기 때문입니다. 나는 전체 양식이 동적으로 생성되므로 이렇게하고있다. – IrfanRaza

답변

1

입력 컨트롤이 창에서 유일한 컨트롤이므로 포커스가 사라지면 전체 창이 포커스를 잃고 포커스가없는 창에 입력을 포커스 할 수 없습니다 .

이 내가이 확인을위한 시험 HTML은 다음과 같습니다 두 번째 입력을 주석 처리하면 코드가 작동하지 않습니다

<form> 
    <input id="my_input" type="text" /> 
    <input id="my_input2" type="text" /> 
</form> 

<script type="text/javascript"> 
    $("#my_input").blur(function() { alert('bad input'); setTimeout(function() { $(window).focus(); $("#my_input").focus() }, 1); return false } ); 
</script> 

!

가능한 한 가지 해결책은 입력 한 후에 보이지 않는 입력을 사용하여 첫 번째 흐리게 때 초점을 잡는 것입니다.

관련 문제