input onpaste 이벤트

1481 단어 input
function afterPaste() {
    var clipData = clipboardData;
    var text = clipData.getData('text'); //  
    var reg = /\s/g;
    var ntxt = text.replace(reg, "");
    var that = this;
    //this.value = ntxt;    setTimeout() 
    setTimeout(function() {
        document.querySelector("#temp").value = ntxt
    },
    1);
}



function beforePaste() {
    var clipData = clipboardData;
    var text = clipData.getData('text'); //      
    var reg = /\s/g;
    var ntxt = text.replace(reg, "");
    clipData.setData("text", ntxt);
}

   /*
페이지에 input는 줄 바꿈 문자에 붙여넣을 수 없습니다. 예를 들어 (ff, 크롬은 줄 바꿈 문자가 자동으로 바뀌기 때문에 크롬이나 ff라면 이 방법이 필요 없습니다.)
####
하나, 둘, 셋, 셋, 둘, 셋, 셋, 셋, 넷, 셋, 셋, 넷, 셋, 셋, 넷, 셋, 셋, 셋, 셋, 넷, 넷, 넷, 넷, 넷, 넷, 넷, 넷, 넷, 넷, 넷, 넷, 넷,
###
input에 붙여넣을 때는 123123123만 남길 수 있습니다.
 
해결 방법은 두 가지가 있다
1. input를 textarea로 바꾸고, 단점textarea는 백그라운드에 제출할 수 없음(원생)
 
2. 자신이 js를 써서 클립보드 데이터의 데이터를 처리한 후 input에 부여한다.여기는 처리할 수 있는 두 가지 방법이 있어요.
2.1 onpaste(onafterpaste라고 할 수 있음) 이 안에서 처리하려면 set Timeout () 을 사용해야 하는데 그다지 우아하지 않다.
2.2 onbeforepaste는 클립보드의 값을 처리한 후 클립보드에 다시 넣고 input에 붙일 때 정확한 데이터입니다.
 
두 번째 방법이 있는데 왜 첫 번째 방법이 있습니까? 이것은 onbeforepaste 방법은 i 브라우저만 지원하고 크롬, ff는 onpaste 방법만 있기 때문입니다.호환성을 위해서라면 우아하지 않은 방법을 쓸 수밖에 없다. */ 

좋은 웹페이지 즐겨찾기