替换后字符提交错误
Character submitted wrong after replace
我使用 greasemonkey 脚本替换字段中的任何逗号或分号。 有几个内部网站我必须这样做,有些只有输入字段,有些有文本区域。
脚本确实有效,但是当我提交表单时,文本区域的替换字符仍将作为逗号和分号提交。
为了确保在上次模糊之前不会触发提交,我添加了一个警报。
(function() {
'use strict';
$(document).ready(function(){
$("textarea").blur(function(){
this.value=this.value.replace(/[,;]/g, "-");
this.value=this.value.replace(/\n/g, " ");
});
$("input").blur(function(){
this.value=this.value.replace(/[,;]/g, "-");
this.value=this.value.replace(/\n/g, " ");
});
});
var nodes = document.getElementsByTagName('input');
if (window.location.href == "<website-url>")
nodes[39].setAttribute('onclick', 'alert("Data validated")');
else
nodes[0].setAttribute('onclick', 'alert("Data validated")');
有什么想法吗?使用不同的浏览器和不同的字符进行测试。
我会使用 submit
事件来确保 blur
尚未处理的所有延迟更改在提交之前得到处理:
$(document).ready(function() {
function updateValue() {
this.value = this.value.replace(/[,;]/g, "-").replace(/\n/g, " ");
}
$("textarea, input").blur(updateValue);
$("form").submit(function() {
$(this).find("textarea, input").each(updateValue);
});
});
遗憾的是,Stack Snippets 不允许使用表单,所以这里是上面的 live on jsFiddle。请注意,如果您在字段中键入 cute;kittens
,然后选择退出或提交,它会更改为 cute-kittens
,如果您发送表格。