我正在寻找一种方法来制作仅数字(或广泛地,可以与多种类型的验证器一起使用的东西)到目前为止我有类似的东西:
this.ContentEditable.bind("keydown", this, function (event) {
if ((event.data.NumericOnly === true) && (event.which != 8) && (event.which != 189) && (event.which != 190)) {
var c = String.fromCharCode(event.which);
if ('0123456789'.indexOf(c) < 0) { return (false); }
}
});
这种方法的警告是,如果用户已经输入了“.”。(字符 190,String.fromCharCode
不适用于它,字符 8 是退格)或“-”(字符 189)重复和/或除contenteditable=true
's 文本中的第一个字符以外的任何地方都应视为无效。我可以获取文本并使用 return (false) 取消输入;如果它已经包含一个“。” 和一个“。” 正在键入或检查光标是否位于零位置以表示 "-"contenteditable=true
的文本中已经不存在任何内容,但我想要一些更可扩展的东西。
是否可以获得关键事件的最终结果,以便在我仍然可以选择取消关键事件的同时将其发送给验证器?