离开文本区域时需要激活JS代码
Need to activate JS code on leaving a textarea
目前,我通过表单提交按钮上的OnClick事件清理文本区域中的文本。
<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>
此外,链接所有文本区域以集中方式运行的最佳方法是什么。目前,我认为我需要在每个文本区域上放置所需的事件调用。
编辑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>
<textarea id="comment" cols=70 rows=5 onblur="cleanWordClipboard(this)" />
随着你的JavaScript是:
function cleanWordClipboard(control) {
control.value = "";
}
关于你的最后一个问题:
"还有,连接所有文本区域以集中方式运行的最佳方法是什么。目前,我认为我需要在每个文本区域上放置所需的事件调用。
你可以在这里使用JQuery来帮助你。
<textarea id="commentA" cols=70 rows=5></textarea>
<textarea id="commentB" cols=70 rows=5></textarea>
<script>
$("textarea").blur(function(){
cleanWordClipboard(this);
});
</script>
下面是一个非常粗略的运行示例:http://jsfiddle.net/CatmanDoes/p755m0n8/
我建议您不要使用它来盲目定位所有文本区域,而是执行以下操作:
<textarea id="commentA" cols=70 rows=5 class="textarea-cleanp"></textarea>
<textarea id="commentB" cols=70 rows=5 class="textarea-cleanp"></textarea>
<script>
$(".textarea-cleanp").blur(function(){
cleanWordClipboard(this);
});
</script>
是否有实际的 css 类用于textarea-cleanp
并不重要
相关文章:
- JS不工作:Sublime 3编辑器-Var main=函数()-=不是“”;激活“;(功能新手)
- JS:Onchange事件在启动时激活
- 如何每 10 秒调用一次 JS 函数,然后以角度激活一个函数
- 通过自定义JS功能激活Sencha Touch选项卡
- skrollr.js加载后立即激活相对模式
- 离开文本区域时需要激活JS代码
- JS表单验证,如果所有字段正确,则激活提交按钮
- 如何创建激活jQuery/js函数的图像按钮
- 点击DIV或A标签激活JS功能
- JS 函数在页面重新加载时激活警报
- 在fullpage.js中重新激活自动滚动
- 使用点击香草JS,在错误的节点上激活
- 我如何编程一个JS按钮,它也可以在点击和滚动时激活转换
- 使用 Greasemonkey 更改变量或激活 JS 链接的<选择>下拉菜单
- 在用户位置下雪时激活js
- 是否激活了sail.js
- 流星js的重新激活是如何工作的
- 只有当parsley.js的警报激活时,才会出现警告框
- 如何激活JS文件在一个单独的文件夹
- 可激活.js在URL上标记JS发送值