gpt4 book ai didi

javascript - 离开文本区域时需要激活 JS 代码

转载 作者:行者123 更新时间:2023-11-28 15:29:24 26 4
gpt4 key购买 nike

目前,我通过表单提交按钮上的 OnClick 事件清理 TextArea 中的文本。

<textarea id="comment" class="CleanHTML" cols=70 rows=5></textarea>
<button type="submit" id="btn" name="btn" value="Save" onClick='document.getElementsByClassName("CleanHTML")[0].value = cleanWordClipboard(document.getElementsByClassName("CleanHTML")[0].value)'>Save</button>

但是我现在认为这是有缺陷的,当用户离开 TextArea 元素本身时,最好在 TextArea 元素本身上触发 cleanHTML 函数,因此如果用户粘贴一些代码然后继续前进,那么它会被触发。

所需的事件是什么以及函数调用代码现在是什么样子?我在下面提供了一个启动器,其中包含 onblur 事件中的伪代码,如果 onblur 是正确的事件?

<textarea id="comment" cols=70 rows=5 onblur="this.value=cleanWordClipboard(this.value)"></textarea>

此外,将所有 TextArea 集中起来以这种方式表现的最佳方法是什么。目前我认为我需要在每个 TextArea 上放置所需的事件调用。

编辑1

            <script language="JavaScript">
// Thanks to Johnathan Hedley for this code.
var swapCodes = new Array(8211, 8212, 8216, 8217, 8220, 8221, 8226, 8230); // dec codes from char at
var swapStrings = new Array("--", "--", "'", "'", "\"", "\"", "*", "...");
function cleanWordClipboard(input) {
// debug for new codes
// for (i = 0; i < input.length; i++) alert("'" + input.charAt(i) + "': " + input.charCodeAt(i));
var output = input;
for (i = 0; i < swapCodes.length; i++) {
var swapper = new RegExp("\\u" + swapCodes[i].toString(16), "g"); // hex codes
output = output.replace(swapper, swapStrings[i]);
}
return output;
}
</script>

最佳答案

onBlur 是正确的事件 - 它在元素失去焦点时触发。

编辑:

    <textarea id="comment" cols=70 rows=5 onblur="cleanWordClipboard(this)"></textarea>

<script language="JavaScript">
// Thanks to Johnathan Hedley for this code.
var swapCodes = new Array(8211, 8212, 8216, 8217, 8220, 8221, 8226, 8230); // dec codes from char at
var swapStrings = new Array("--", "--", "'", "'", "\"", "\"", "*", "...");
function cleanWordClipboard(input) {
// debug for new codes
// for (i = 0; i < input.length; i++) alert("'" + input.charAt(i) + "': " + input.charCodeAt(i));
var output = input.value;
for (i = 0; i < swapCodes.length; i++) {
var swapper = new RegExp("\\u" + swapCodes[i].toString(16), "g"); // hex codes
output = output.replace(swapper, swapStrings[i]);
}
input.value = output;
}
</script>

关于javascript - 离开文本区域时需要激活 JS 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27943412/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com