2017-06-29 55 views
1

添加
我有這樣的代碼:上KEYUP

$("#texto").keyup(function(e){ 
 
     if(e.key === "Enter"){ 
 
      var texto = $("#texto").val(); 
 
      $("#texto").val(texto+"<br/><br/>"); 
 
     } 
 
    })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<textarea type="text" id="texto" name="texto" rows="8" style="resize:none;" ></textarea>

但事實是,它像我想要的,但它是寫之前,他改變線寫入<br/>,我想知道在編寫<br/>後是否可以做相反的改變。

+3

使用'html'功能,而不是'val' –

+0

你會更好的處理這種輸入完成後 - 你可以替換所有的換行字符BR,無論是在服務器,或者如果您在JS中處理它以顯示頁面上的其他位置。你在這裏所做的就是在你的代碼和用戶的打字速度之間創造一種奇怪的競爭條件。有沒有必要實時做 – ADyson

回答

1

您應該使用在實際插入字符之前發生的​​事件,這樣您的<br>將位於真正輸入字符之前。

$("#texto").keydown(function(e){ 
 
     if(e.key === "Enter"){ 
 
      var texto = $("#texto").val(); 
 
      $("#texto").val(texto+"<br/><br/>"); 
 
     } 
 
    })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<textarea type="text" id="texto" name="texto" rows="8" style="resize:none;" ></textarea>

+0

你是一個救世主,謝謝你! –