2014-12-20 1 views
-4

HTML 문서의 한 페이지에 양식이 있으며 JavaScript 또는 jquery에 해시 태그 (#)를 추가하는 방법이 있는지 궁금합니다. 각 단어의 시작에 당신은의 keyup 이벤트 리스너에이를 수 있으며, 일부는 교체하고 같이 IndexOfHTML5 양식의 각 단어의 시작 부분에 해시 태그 (#)를 추가하십시오.

+1

양식 필드에서 어떤 단어? 당신의 문서에서, 당신은 무엇을 시도 했습니까? –

+0

페이지로드시 또는 사용자가 입력 할 때? – putvande

+0

해시 태그는 '#'접두사가 붙은 전체 단어입니다. '# '은 파운드/숫자 기호입니다. – loganfsmyth

답변

1

(한 단어가 입력보다 더있을 수 있습니다) :

<input id="test"> 

<script> 
var a = document.getElementById('test'); 
a.addEventListener('keyup',addthis); 

function addthis() { 
    b = a.value.replace('#',''); 
    a.value = '#'+b 

    if (a.value.indexOf(' ')) 
    { 
    a.value = a.value.replace(' ','#'); 
    } 

} 
</script> 

DEMO

+0

baao 그 위대한 작품! 공백에 해시 태그를 추가하는 것을 막을 수 있습니까? – RubberDucky4444

+0

@ user2640633 이것을 시도해보십시오, 약간 버그가 있지만 일종의 작품입니다. http://jsfiddle.net/hotfwzcL/1/ – baao

+0

Jonathan Lonowski ~이 폼에 고정되어있는 많은 관련없는 Jquery가 있습니다. 쉽게 HTML 부분을 올려 놓을 수는 있지만 전환 할 때 양식 안의 자리 표시 자 텍스트가 변경되는 토글 스위치가 있습니다. 나는 아주 작은 자바 스크립트와 jquery를 안다는 것을 인정한다 .... 나의 선생님은 그것의 대부분을 가지고 나를 돕는다. 그리고 나는 그의 코드를 읽고 그것을 이해하려고 노력한다. – RubberDucky4444

1

이 무엇을합니까 부팅 할 필드의 끝으로 커서를 옮기고 싶습니다.

업데이트 :keydown instiedad를 사용하여 여러 공백을 필터링하십시오.

function addHash(event) { 
    if (event.keyCode === 32 && event.target.value.length) { 
     event.preventDefault(); 

     var elem = event.target, 
     val = elem.value; 

     if (val.slice(-1) !== '#') { 
      elem.value += ' #'; 
     } 
    } else if (!event.target.value.length) { 
     if (event.keyCode === 32) { 
      event.preventDefault(); 
     } 
     event.target.value = '#'; 
    } 
} 

테스트를 위해 바오 (baao)의 바이올린을 돌 렸습니다.

DEMO

+0

좋은 사람! 그러나 공간을 두 번 누르면 언젠가 여분의 공간이 생깁니다. – baao

+0

@ RubberDucky4444 코드를 다시 확인하십시오. 이제 시작 부분에 #가 추가되고 원하는 모든 작업을 수행합니다. 공간을 지키는 것은 그것을 깨뜨리지 않습니다 (바오 (baao 's)를 깨뜨리지 않습니다 : 코드에서 공간을 눌러보십시오). 공백을 제거하려면'elem.value + = '#';'에서'#'아래의 공백을 제거하십시오. – Makaze

0

당신이 JQuery와 onchange를 리스너 (EventListner)와 함께이 작업을 수행 할 수 있습니다.

아래 스크립트는 입력 필드의 값을 가져 와서 해당 단어를 공백 ""으로 분할하여 배열로 만듭니다. 단어의 배열에 물결표를 반복하고 단어의 시작 부분에 "#"이 없으면 단어를 추가합니다. 입력 필드의 이전 값을 새 값으로 바꿉니다.

$('#input').on('change', function(e){ 
    var input_string = $(this).val(); 
    var words = input_string.split(" "); 
    var output = ""; 
    console.log(words); 
    $.each(words , function(i, word){ 
     console.log(word); 
     if(word.substr(0, 1) == "#") 
     {    
      output += word + " ";   
     } 
     else 
     { 
      output += "#" + word + " ";  
     } 
     console.log(output); 
    }); 

    $(this).val(output); 
}); 

http://jsfiddle.net/dgs9kapc/6/

+0

Makaze는 훌륭한 단어를 제외하고는 첫 번째 단어에 #을 추가합니다! 모든 도움에 감사드립니다 !!!! – RubberDucky4444

+0

출력 값을 지정하는 것을 잊어 버렸습니다. 그 첫 번째 단어는 #을 얻지 못했어요. 나는 바이올린과 링크를 업데이트했다. – firevirus

관련 문제