我有一个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;
}
但它不起作用!请帮忙
答案 0 :(得分:2)
附加到onkeyup
事件(或onkeydown
)。
然后,用以下代码替换脚本:
var textarea = document.getElementById('textarea');
var revnl = textarea.value.replace(/\s/gm," ");
textarea.value = revnl;
这将用公共空格替换所有空格(甚至是新行和制表符)。
编辑:适用于多个textareas
您可以使用闭包:
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");
};