2012-02-01 4 views
0

우리는 간단한 텍스트 영역과 버튼을 가지고 있습니다. 텍스트 영역에 텍스트가 첫 번째 작업이 jQuery "on-select-off"이벤트를 얻는 방법

이었다 선택을 취소하면

  • 세트 장애인 속성 선택 버튼에서

    1. 제거 속성 장애인 :

      <input type="button" id ="foo" disabled> 
      <textarea rows="12" name="message" id="message" cols="50"></textarea> 
      

      내가 필요 이 코드로 달성 : $('textarea').select(function() { $('#foo').attr('disabled','');});

      하지만 두 번째 작업에는 아이디어가 없습니다.

  • 답변

    0

    는 포커스 이벤트를 사용하여 시도 할 수
    $(document).ready(function() { $('textarea').select(function() {$('#foo').attr('disabled',false)}); $('textarea').mousedown(function() { $('#foo').attr('disabled',true);}); });
    코드 이하로 사용해보십시오? DOM 요소에 집중하면이 이벤트가 시작됩니다. 대답은 아니오였습니다. 마우스를 아래로 사용할 수 있습니다.

    +0

    버튼은 텍스트 영역에 텍스트를 선택한 경우에만 사용하도록 설정해야합니다. 포커스 이벤트와 onMouseUp은 올바른 선택이 아닙니다. –

    +0

    나는 mousedown 이벤트를 사용한다. 그렇지 않으면 아래와 같은 포커스 이벤트를 사용할 수도있다. http : //stackoverflow.com/questions/275761/how-to-get-selected-text-from-textbox-control-with-javascript –

    +0

    탬버린 (tambourine)으로 춤을 추는 것은 올바른 방법입니다. jQuery에 실제 이벤트가 있다고 생각했습니다. 또는 적어도 $ ('textarea')처럼 두 개의 함수를 사용할 가능성을 선택하십시오. select (fn1 {text selected}, fn2 {text unselected}); –

    1

    <script> 
        $(document).ready(function() { 
         $("#controlId").attr('disabled','disabled'); //disable the control 
    
         $("#controlId").removeAttr('disabled');//remove disabled 
        }); 
    </script> 
    

    $("#Div").attr('disabled','true');하지 마십시오보십시오, 여기에 큰 문제는 속성 값이 disabled 경우 (즉, 약 또는 STH) 1.6 == true과의 비교 (참조, 고장이다 http://jsfiddle.net/2vene/1/ (및 jquery 버전을 전환)). 너는 is()에 가야한다.

    jQuery FAQ을 확인할 수 있습니다. 이 기능을 사용하여 텍스트를 선택받을 수

    +1

    또는'.prop ('disabled', true) ' – devnull69

    +0

    정보를 주셔서 감사합니다. 그러나 주된 질문은 "일부 텍스트 선택을 취소 할 때"를 비활성화하는 방법입니다. –

    +0

    Cancel 이벤트에서 당신은'$ ("# controlId"). removeAttr ('disabled');' –

    0

    ,

    function getSelectedText() { 
         var text = ""; 
         if (window.getSelection) { 
          text = "" + window.getSelection(); 
         } else if (document.selection && document.selection.createRange && 
           document.selection.type == "Text") { 
          text = document.selection.createRange().text; 
         } 
         return text; 
        } 
    

    그리고 마우스 업 이벤트에서이 같은 새로운 기능을 추가,

    function Disable() { 
        if(getSelectedText()=='') 
        { 
         $('#foo').removeAttr('disabled'); 
        } 
    } 
    
    $('textarea').mouseup(Disable); 
    
    +0

    페이지상의 텍스트 또는이 텍스트 영역의 선택을 나타 냅니까? –

    +0

    네, 그렇습니다. 나는 시험하지 않았다. 텍스트 상자에서 선택한 텍스트를 가져 오는 방법도 있습니다. –

    +0

    여기 있습니다. http://stackoverflow.com/questions/275761/how-to-get-selected-text-from-textbox-control-with-javascript –

    관련 문제