2015-06-22 24 views
0

我有一個HTML表單,我在其中使用JavaScript函數用空格替換新行字符(\ n)。我使用onClick方法來調用該函數。如何用空格替換文本區域中的新行字符

HTML形式看上去就像這 -

<form action="#" method="post"> 
Type text here<br /> 
<textarea name="text" onClick="autofix();" id="textarea"></textarea><br /> 
<input type="submit" value="Save"> 
</form> 

JavaScript代碼看起來像這個 -

<script> 
function autofix() 
{ 
var text=document.getElementById('textarea'); 
var revnl=text.replace(/(\r\n|\n|\r)/gm," "); 
text=revnl; 
} 

但它是不工作的東西!請幫忙

回答

2

附加到onkeyup事件(或onkeydown)。

接着,以該更換的腳本:

var textarea = document.getElementById('textarea'); 
var revnl = textarea.value.replace(/\s/gm," "); 
textarea.value = revnl; 

這將替換所有的空格與公共空間(即使是新線和標籤)。

編輯:多個文字區域

您可以使用封閉:

function attachAutofix(id) 
{ 
    document.getElementById(id).onkeydown = function (ev) { // or onkeyup 
     ev = ev || event; 
     target = ev.target || ev.srcElement; 
     target.value = target.value.replace(/\s/gm," "); 
    }; 
} 

最後附上事件:

window.onload = function() { 
    attachAutofix("firstTextarea"); 
    attachAutofix("secondTextarea"); 
    attachAutofix("thirdTextarea"); 
}; 
+0

由於它的工作! 如果我在窗體中有多個textarea會怎麼樣? – Disk01

+0

@ Disk01使用prop'onkeydown(this)',然後在函數中接收參數'function autofix(ta)'並使用如下:'ta.value = ta.value.replace(/ \ s/gm,「 「)' – Banana

+0

我編輯了多個textareas的答案。 – pid

相關問題