在文本输入中不需要的字符出现之前将其删除
Remove unwanted characters from text input before they appear
我有一个限制文本输入的函数:
function alphaNumericSpace(inInput) {
inInput.value = inInput.value.replace(/[^'w ]/g, "").replace(/^ +|( ) +/g, "$1");
}
以下是使用它输入文本的示例:
<input name="type" type="text" maxlength="32" onkeyup="alphaNumericSpace(this);">
这样做的目的是让用户知道在输入文本时会发生什么样的文本清除(只允许使用带有单个空格的字母数字字符,如果有的话,在PHP中会删除末尾的最后一个空格(。
然而,这有两个问题,我想解决:
- 按住不需要的字符的键可以避免
onkeyup
事件,同时点击"提交"。这导致要提交的不需要的字符 - 我甚至不希望不需要的字符出现在文本输入中首先,它们在浏览器
您可以使用onInput
事件。
<input oninput="alert('hello')">
参考:使用Javascript 设置输入事件
我不会禁用坏字符的显示,用户可能觉得不友好,但这是一种主观的看法。
他们可以提交糟糕的数据,这应该不是问题。您永远无法将来自浏览器的数据信任到服务器。他们总是可以禁用javascript等
如果出于可用性的考虑,你不想提交,你可以这样做。
编辑:没有jquery。。。很抱歉,但你可以表单提交
<from id="myid" onsubmit="formsubmit"
function formsubmit () {
e.preventDefault(); // this will prevent the submit.
// Check for good data
// if good submit, else reject the submit
});
如果你真的不想让他们出现keydown
应该对你有效
相关文章:
- 为什么以下正则表达式不删除 ## 字符
- javascript使用for循环从多个字符串中删除字符
- 使用Jquery Keydown函数删除字符
- 使用 Javascript 正则表达式删除字符后的所有内容
- 如何在 DOM 加载后使用 JavaScript 或 JQuery 从 href 属性中删除字符
- nl2br jQuery函数从每行中删除字符
- 如何通过javascript在文本区域中插入/删除字符
- 如何从 html 属性值中删除字符
- 如果文本以这些字符开头或结尾,请删除字符
- 如何按位置号从字符串中删除字符
- 单击按钮时删除字符,除非输入值为0
- 删除字符“”$"从产品的角度来看
- 如何从字符串中删除字符
- 只有当JavaScript中的子字符串长度大于x时,才从子字符串中删除字符
- 由于Javascript,Backspace(删除字符)在Firefox中无法正常工作
- JavaScript删除字符前的所有文本
- 如何在用户输入javascript时删除字符
- 从字符串javascript算法中删除字符
- 从javascript数组内的对象中删除字符
- JSON 字符串删除字符