2014-04-15 6 views
0

빠른 질문;HTML - 레이블에 텍스트 입력 바인딩

나는 입력 (텍스트 영역, 선택 및 편집)과 양식을 가지고 있고, 나는이에 무엇을 쓰기 미러링 할. 시각적 인 확인을 위해 다른 입력란에 입력 한 데이터를 바인딩하고 싶습니다.

나는 작은 내부 할일 HTML 웹 페이지를 만들려면이 사용하고, 당신이 새 작업을 추가 할 때, 나는 입력은 입력 필드 위의 "미리보기"작업에 반영하고자합니다.

이 작업을 수행하는 방법은 무엇입니까? HTML, Javascript 또는 PHP 중 하나? 사전에

감사합니다 =)

+2

뜻 stackoverflow 편집기처럼 ?? –

+0

예. javascript를 사용하여 내용을 미러링하려는 컨트롤의 onchange 이벤트를 처리하십시오. – enhzflep

+0

예, 실제로이 편집기처럼 :) jQuery도 열려 있습니다. 내가 자바 스크립트로 그것을 덮은 생각 ^^ 아래에 게시 된 솔루션을 살펴 보겠습니다. =) –

답변

1

특별히 jQuery를 솔루션을 요구하지 않았으므로, 여기에 일반 자바 스크립트입니다 실시간으로 textarea에서 div으로 복사하려고합니다. 동일한 절차는 입력 할 수있는 다른 모든 요소에 적용 할 수 있습니다. 이입니다 그리고 자바 스크립트

<textarea name="test" onkeyup="copyData(this,'copytarget')"></textarea> 
<div id="copytarget"></div> 

:

HTML은 이것이다

function copyData(el, targ) { 
    document.getElementById(targ).innerHTML = el.value; 
} 

textarea에 당신이 키보드의 키 오프 손가락을 들어 올릴 때마다 입력이 단순히 복사 다.

+0

jQuery도 열려 있습니다. =) 하지만 여기서 해결책을 찾아 보겠습니다! –

+2

사용자가 상황에 맞는 메뉴를 사용하여 텍스트를 붙여 넣으면이 기능이 작동하지 않습니다. – wadim

0

당신은 jQUery

$("#textBox").keyup(function(){ 
    $("#message").val($(this).val()); 
}); 

간단한 사용 키를 백업 기능은 jQuery를 사용하여 fiddle

4

하나의 옵션을 볼 수

$(':input').change(function(){ 
    $('label[for="' + this.id + '"]').text('Label for "' + this.id + '" value: ' + this.value); 
}); 

JS Fiddle demo . (뒤늦게) 일반 자바 스크립트에서

:

function updateLabel(){ 
    var label = this.labels[0], 
     textProp = 'textContent' in document ? 'textContent' : 'innerText'; 
    label[textProp] = 'Element value: ' + this.value; 
} 

var inputTypeElems = document.querySelectorAll('input, select, textarea'); 

[].forEach.call(inputTypeElems, function(a){ 
    a.addEventListener('change', updateLabel); 
}); 

그리고 더 반응 접근 방식을 제공 :

function updateLabel(){ 
    var label = this.labels[0], 
     textProp = 'textContent' in document ? 'textContent' : 'innerText'; 
    label[textProp] = 'Element value: ' + this.value; 
} 

var inputTypeElems = document.querySelectorAll('input, select, textarea'); 

[].forEach.call(inputTypeElems, function(a){ 
    var evtName; 
    switch (a.tagName.toLowerCase()){ 
     case 'input': 
     case 'textarea': 
      evtName = 'keyup'; 
      break; 
     default: 
      evtName = 'change'; 
    } 
    a.addEventListener(evtName, updateLabel); 
}); 

JS Fiddle demo.

참고 :

+0

jquery가 필요하다는 점에 유의할만한 가치가 있습니까? –

+0

@David, 나는이 "변경"이벤트로 타이핑하는 것을 즉각적으로 반영 할 것이라고 생각하지 않는다. –

+0

@Dushyant : 그 단점을 해결하기 위해 동의 함. –

0

사용 change 이벤트입니다.

이의 당신이 textareadiv가 있다고 가정하자 및 : 당신에

$('input, texarea').change(function(){ 
    $('#previewFor' + $(this).attr('id')).text($(this).val()); 
}); 

$('select').change(function(){ 
    $('#previewFor' + $(this).attr('id')).text($('option:selected', this).text()); 
}); 
0

삽입 HTML 페이지

<script> 

    var inputTextHandler = function(){ 

     // you input 
     var MyTextInput = $("#MyTextInput"); 

     // set listener to yurs input 
     MyTextInput.change(function(){ 
     // curren text of input field 
     var newText = this.val(); 
     // set this text to prewie block 
     $("#MyTextPrewie").val(newText); 
     }); 

    } 

    // run you handler 
    inputTextHandler(); 

</script> 

<input id="MyTextInput"></input> 
<input id="MyTextPrewie"></input>