2012-02-20 3 views
7

텍스트 상자에 잘라 내기 이벤트 (jquery)를 트랩했습니다. 내가 원하는 것은 자르기 이벤트가 발생하는 동안 텍스트 상자에 텍스트를 가져 오는 것입니다.잘라 내기 이벤트 중 텍스트 상자 값 가져 오기

사용자가 evt.originalEvent.clipboardData.getData ('text')를 통해 잘라낸 데이터에 액세스하려고했지만 정의되지 않은 값을 반환합니다.

내 목표는 사용자가 텍스트 (텍스트 상자가 비어 있음)를 모두 잘라내는지 여부를 확인하는 것입니다. 사전에

덕분에

답변

0

희망 나는 바로 당신을 가지고 :

jQuery를 사용하면 텍스트 상자가 모든 사용자의의 keyup에 비어 있는지 확인하기 위해이 같은 것을 사용할 수 있습니다에서

:

var txt; 
$('#textbox_ID').live('keyup', function() { 
    txt = $(this).val().length; 
    if(txt < 1) { 
     alert("textbox is empty"); 
    } 
}); 

이해야 사용자가 키를 놓고 텍스트 상자를 포커스 할 때마다 비어 있는지 확인하기 때문입니다.

+0

Nay, mate, 절단 이벤트 중에 텍스트 상자가 비어 있는지 감지하려고합니다. – ptheofan

+0

보안상의 이유로 모든 브라우저에서 클립 보드 데이터를 가져올 수 없습니다. Cut 이벤트 중에 * 텍스트 상자를 확인하고 싶은 이유는 무엇입니까? 당신은 당신의 목표가 사용자가 모든 텍스트를 잘라내는지를 아는 것임을 언급했기 때문에 cut 이벤트 이후에 * 비어 있어야합니까? – Fabian

+0

SO에 대한이 항목에 대한 몇 가지 질문이 있습니다. http://stackoverflow.com/questions/1144184/js-get-clipboard-data – Fabian

5

즉시 실행을위한 기능을 예약하는 기간이 0 인 setTimeout 일 수 있습니다.

var ta = $('#YOUR_TEXTAREA'); 
ta.bind('cut', function() { 
    setTimeout(function(){ 
     if (!ta.val()) { 
      // user cut the whole text. 
     } 
    },0); 
}); 

을 당신은 수 있습니다 좋은 것은 (어떤 사용자가 모든 텍스트를 잘라 것을 의미) 텍스트가 이미 절단 된 후 함수가 실행됩니다, 그래서 당신의 텍스트 영역이 비어있는 경우 다음 확인할 수 있다는 것입니다 setTimeout 앞에 검사를 추가하여 텍스트가 잘 리기 전에 텍스트 영역에 텍스트가 있는지 테스트하십시오 (사용자가 텍스트를 선택하지 않고 Ctrl + X를 누르면 여전히 컷 이벤트가 트리거됩니다)

+1

아니, 제한 시간이 없습니다. 방금 잘라낸 클립 보드 데이터를 검색하는 방법이 있다고 확신합니다. 아직 그것을 알아 내지 못했습니다. – ptheofan

+1

시간 초과 사용은 더럽습니다. 가장 중요한 것은 이벤트의 흐름이 느슨합니다. 가장 좋은 방법은 클립 보드를 읽는 것입니다, 질문은 어떻게!? – ptheofan

0

이, JavaScript get clipboard data on paste event (Cross browser)보고 그것을 제안, 그것은 붙여 넣기 이벤트에 대한 것이지만 나는 당신이 뭔가를 비슷한 일을 할 수 있다고 확신하고 클립 보드에있는 현재 값을 비교, 만약 그들이 정확히 입력과 동일합니다 비어있을 것이다. 그렇지 않으면 그렇지 않다.