【问题标题】:Validate text area for input numeric, comma, dot and space not allowed [closed]验证文本区域是否允许输入数字、逗号、点和空格 [关闭]
【发布时间】:2013-05-24 05:36:39
【问题描述】:

我已经放置了一个文本框,我想对其进行限制。

文本区只能输入数字、逗号、点,不能输入空格。

【问题讨论】:

  • 此问题并未显示解决问题的尝试。你的代码在哪里?

标签: javascript validation restriction


【解决方案1】:

您可能会以多种不同的方式面对这个问题。大多数人可能会在他完成输入后删除用户输入。但这是我几年前的尝试(使用,但应该很容易重写):

Element.prototype.watchInput = function(data){
    if(Object.isString(data))
        data = {allow:data};

    var data = Object.extend({
        letters: true,
        numbers: true,
        allow: '_'
     }, data || { });

     $(this).observe('keypress', function(e){
        setTimeout(function(){
            var elem = $(Event.element(e));
            var value = elem.getValue();
            var input = value.substr(value.length-1).toLowerCase(); // last character
            var replace = '';

            var remove = true;
            if(data.letters && 'abcdefghijklmnopqrstuvwxyz'.include(input)) remove = false;
            if(data.numbers && '01234567890'.include(input)) remove = false;
            if(data.allow && data.allow.include(input)) remove = false;

            if(remove){
                elem.setValue(value.gsub(input, replace));
            }
        }, 3);
    });
    return this;
}

只需将其应用于您的输入/文本区域即可使用它:

$('myInput').watchInput({letters:false,allow:',.'});

将在任何keypress 上观察到该元素。由于 keypress 事件不直接接收客户端输入,我们必须稍等片刻(在我的例子中是 3 毫秒)。 之后,我们验证客户端输入的最后一个字符,并在它无效时将其删除。

我知道,这不是最漂亮的代码,但我认为这个想法值得传播。


Here is a preview 以上设置。

【讨论】:

  • 为什么你需要框架prototype.js,你可以只用javascript来完成
  • 是的,你是对的。随意编辑我的朋友的答案:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-22
  • 1970-01-01
相关资源
最近更新 更多