2010-07-19 5 views
3

jQuery UI를 사용하고 있고 데이터 그룹의 모든 텍스트 상자를 사용하지 않으려하지만 탭을로드 할 때마다 한 번만 사용합니다. 여기에 지금까지 무엇을 가지고 :jQuery에서 한 번만 수행

$(function() { 
     $("#tabs").tabs({ 
      cache: true, 
      load: function (event, ui) { 
       $(".data-group").one('load', function() { 
        $(this).find(':text').attr('disabled', 'disabled'); 
       }); 
      }, 
      select: function (event, ui) { 
       // Do Stuff 
      } 
     }); 
    }); 

결과는 내가 (인터페이스를 통해) 텍스트 상자를 사용 데이터를 입력하지만, 내가 탭에서 멀리 전환 할 때 다시 전환 할 수 있다는 것입니다, 값입니다 텍스트 상자에 (데이터에 오류가 있으면 유효성 확인 메시지가 표시되지만) 모든 상자가 비활성화됩니다.

이 문제를 해결하기위한 제안 사항은 무엇입니까?

답변

0

내가 캐싱하여이를 해결 결국 그래서 그들은 단지 한 번만로드합니다. 그런 다음 적절한 텍스트 상자를 활성화합니다. 이 시점부터 사용자의 작업에 따라 다른 상자가 활성화 또는 비활성화되었는지가 결정됩니다.

0

show 이벤트에 바인딩 시도의 라인을 따라 뭔가 예를 들어, '데이터가 텍스트 입력 중 하나 이상있는 경우 다음 그들에게 수 있도록'

show: function(event, ui) { 
    if($(".data-group").find(":text[value]").length) { 
     $(".data-group").find(":text").removeAttr("disabled"); 
    } 
} 
+0

이 방법은 효과가 있지만 탭을 변경하는 경우에만 비활성화하는 것이 더 효율적이라고 생각됩니다. 그게 가능하니? 그렇지 않다면, 나는 당신의 방법으로 갈 것입니다. – JasCav

+0

사실 나는 사용자가 값을 입력 한 다음 확인란을 비활성화 할 수 있기 때문에 이것이 작동하지 않는다는 것을 깨달았습니다. 다시 말하지만,보다 효율적인 대답이 있어야하는 것 같습니다. 도와 주셔서 감사합니다. – JasCav