2010-04-09 6 views
1

코드 아래에 텍스트 영역이 6 번 추가되고 처음에는 텍스트 영역에 텍스트 입력 텍스트가 있습니다. 사용자가 첫 번째 및 세 번째 텍스트 영역에 데이터를 입력하면 내 질문입니다. "텍스트 영역이 비어있다"는 경고 메시지를 표시하는 방법은 일반적인 메시지이지만 두 번째 텍스트 영역에만 초점을 맞추고 사용자가 두 번째 텍스트 영역에 데이터를 입력하면 다음 텍스트 영역에 집중해야합니다.텍스트 영역에 초점 맞추기

<script> 
function ad_R(count) 
{ 
    //Adding and populating table row 
    var row = '<tr>'; 
    row += '<td>'; 
    row += '<textarea rows = "8" cols = "18" border ="0" class="input" style="border:none;overflow:visible;width:100%;" id="details'+count+'" nfocus="if (this.value == \'Enter text\') this.value = \'\';" onblur="if (this.value == \'\') this.value = \'Enter text\';" name ="detail'+count+'" class="row_details'+r_count+'">Enter text</textarea></td></tr>'; 
    } 

    $(document).ready(function() { 
    cnt += '<table cellspacing="0" cellpadding="0" border="1" width="100%" id="_table">'; 
    cnt += '<tr>'; 
    cnt += '<th width="30%">Category</th>'; 
    cnt += '</tr>'; 
    for(var i=0;i<6;i++) 
    { 
     cnt += add_R(6); 
    } 
    cnt += '</table>'; 

    }); 

답변

1

일반적으로 onblur=과 같은 인라인 핸들러를 제거해야합니다.

대신 모든 이벤트에 jQuery를 사용하십시오. 인스턴스

$('textarea').bind('focusout', function(e){ 
    if($(this).val() == "") 
     alert('Textarea ' + this.id + ' is empty'); 
}); 

를 들어 나는 완전히 당신이 더 뭘 하려는지 이해하지 못했다 두려워 해요,하지만 난 당신이 어떤 핸들러의 모든 요구를 관리 할 수 ​​있습니다 확신합니다.

$('textarea').bind('keydown', function(e){ 
    var $next = $(this).next('textarea'); 
    if($next) $next.focus(); 
}); 

는 (이유를 모르겠다 경우에도) 당신이 onthefly 그 텍스트 영역을 추가하고 있기 때문에

편집 , 당신은 아마에 .delegate().live() 또는 더 나은 사용해야 다음 텍스트 영역에 뛰어 내리고 싶다 해당 이벤트 핸들러를 바인드합니다.

0

가 (일부 명백한 전역 cntcount을 R_) 조금 "컴파일"하는 그 조각 누락, 그리고 기능 ad_R 또는 add_R입니까?
이 함수는 아무 것도 반환하지 않으므로 document-ready 함수의 반환 값 +=이 제대로 작동하지 않습니다.
함수를 호출 할 때 색인 번호 (i)와 하드 코드 된 번호 6을 보내려는 것 같습니까? 그리고 textarea를위한 HTML 문자열을 만들 때 "onfocus"가 될 수있는 "nfocus"속성이 있습니다.

이 외에도 사용자가 특정 순서로 텍스트를 입력하도록하는 것이 목표입니까? 즉, 1의 앞에 2를, 2의 앞에 3을 채우지 않는 것입니까?

1

사용자가 설명하는 것처럼 입력 양식을 사용하는 것은 매우 성가 있습니다. 버튼 클릭과 같은 사용자 작업 후에 텍스트 영역 유효성 검사를 수행하는 것이 좋습니다. 이러한 동작은 사용자가 입력을 완료했다고 가정하고 유효성 검사를 수행하는 훌륭한 순간입니다.

$(document).ready(function() { 
    $("#buttonid").click(function() { 
     for (var i = 0; i < 6; i++) { 
      if ($("#details" + i).val() == "") { 
       alert("You are missing some input!"); 
       $("#details" + i).focus(); 
       return false; 
      } 
     } 
     return true; 
    }); 
} 
: 여기

누락 된 텍스트 영역 입력에 대한 경고를 표시하고 메시지 이후에 포커스를 유효성 검사 코드의 샘플 조각의
관련 문제