2010-01-20 38 views
14

Tôi có một textarea, Trên mỗi Nhập phím được nhấn trong textarea Tôi muốn dòng mới bắt đầu bằng dấu đầu dòng (*). Làm thế nào để đi về nó ?Nhập khóa trong văn bản

Không cần jQuery.

Tôi có thể quan sát số Nhập, sau đó!? Tôi có phải lấy toàn bộ giá trị của textarea và nối thêm * vào nó và lại điền vào số textarea không?

+0

đã bất kỳ câu trả lời giúp? –

+0

Theo gợi ý dưới đây, tôi đã nhận được giải pháp. – sat

Trả lời

15

Bạn có thể làm một cái gì đó như thế này:

<body> 

<textarea id="txtArea" onkeypress="onTestChange();"></textarea> 

<script> 
function onTestChange() { 
    var key = window.event.keyCode; 

    // If the user has pressed enter 
    if (key === 13) { 
     document.getElementById("txtArea").value = document.getElementById("txtArea").value + "\n*"; 
     return false; 
    } 
    else { 
     return true; 
    } 
} 
</script> 

</body> 

Mặc dù thức ăn nhân vật dòng mới từ nhấn enter vẫn sẽ ở đó, nhưng một sự khởi đầu của nó để nhận được những gì bạn muốn.

+0

@williamtroup: Tôi đã bật định dạng mã cho mã. –

+5

Điều này sẽ chỉ hoạt động trong IE: 'window.event' không được hỗ trợ trong các trình duyệt khác. –

+0

Doug Crockford nói với tôi để cho bạn biết để sử dụng === thay vì ==. – MrBoJangles

7

Bạn cần xem xét trường hợp người dùng nhấn vào giữa văn bản, không chỉ ở cuối. Tôi muốn đề nghị phát hiện chìa khóa nhập trong trường hợp keyup, theo đề nghị, và sử dụng một biểu thức chính quy để đảm bảo giá trị là như bạn yêu cầu:

<textarea id="t" rows="4" cols="80"></textarea> 
<script type="text/javascript"> 
    function formatTextArea(textArea) { 
     textArea.value = textArea.value.replace(/(^|\r\n|\n)([^*]|$)/g, "$1*$2"); 
    } 

    window.onload = function() { 
     var textArea = document.getElementById("t"); 
     textArea.onkeyup = function(evt) { 
      evt = evt || window.event; 

      if (evt.keyCode == 13) { 
       formatTextArea(this); 
      } 
     }; 
    }; 
</script> 
3

kịch bản của tôi là khi người dùng đánh vào phím khi gõ trong textarea tôi phải bao gồm một break.I dòng đạt được điều này bằng cách sử dụng các mã dưới đây ...... Hy vọng nó có thể giúp ai đó ......

function CheckLength() 
{ 
    var keyCode = event.keyCode 
    if (keyCode == 13) 
    { 
     document.getElementById('ctl00_ContentPlaceHolder1_id_txt_Suggestions').value = document.getElementById('ctl00_ContentPlaceHolder1_id_txt_Suggestions').value + "\n<br>"; 
    } 
} 
+0

Wow cảm ơn hãy để tôi kiểm tra, nhìn đẹp: D –

14

Chỉ cần thêm tad này vào văn bản của bạn.

onkeydown="if(event.keyCode == 13) return false;" 
+0

Có thể bạn có thể mở rộng khi câu trả lời này. Nó dường như không hoạt động. – swdev

1

Bạn có thể làm một cái gì đó như thế này:

$("#txtArea").on("keypress",function(e) { 
 
    var key = e.keyCode; 
 

 
    // If the user has pressed enter 
 
    if (key == 13) { 
 
     document.getElementById("txtArea").value =document.getElementById("txtArea").value + "\n"; 
 
     return false; 
 
    } 
 
    else { 
 
     return true; 
 
    } 
 
});
<textarea id="txtArea"></textarea>

Các vấn đề liên quan