限制输入到文本框:仅允许Titanium中的数字和小数点

时间:2014-04-12 11:09:58

标签: titanium titanium-mobile appcelerator-mobile titanium-alloy

如何限制文本框的输入,使其只接受数字和小数点?

6 个答案:

答案 0 :(得分:3)

var textField = Ti.UI.createTextField({
        top : 20,
        left : 10,
        right : 10,
        height : 60,
        keyboardType : Ti.UI.KEYBOARD_NUMBER_PAD
    });
    Window.add(textField);

在属性keyboardType : Ti.UI.KEYBOARD_NUMBER_PAD的帮助下,您可以限制文本框的输入,使其仅接受数字和小数点

答案 1 :(得分:0)

使用此:

<html>
    <head>
        <script>
        function removeNumbers(textbox) {
            textbox.value = textbox.value.replace(/[^\0-9]/g, "");
        }
        </script>
    </head>
    <body>
    <input onKeyPress="removeNumbers(this)">

    </body>
</html>

答案 2 :(得分:0)

以下是此网站的其他用户ShreejiShah制作的jsfiddle:http://jsfiddle.net/4HHeQ/ 以下是原始问题:How to make HTML input tag only accept numbers?

它使用jQuery来检测击键,

jQuery("#myId").keydown(function(event) {
        // Allow: backspace, delete, tab, escape, enter and .
        if ( jQuery.inArray(event.keyCode,[46,8,9,27,13,190]) !== -1 ||
             // Allow: Ctrl+A
            (event.keyCode == 65 && event.ctrlKey === true) || 
             // Allow: home, end, left, right
            (event.keyCode >= 35 && event.keyCode <= 39)) {
                 // let it happen, don't do anything
                 return;
        }
        else {
            // Ensure that it is a number and stop the keypress
            if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
                event.preventDefault(); 
               }   
        }
    });

如果密钥不是数字,退格,删除,制表符,转义,请输入或。它&#34;防止默认&#34;动作,用于在文本框中显示输入的字符。

再一次,这不是我的代码,但它 绝对精彩,所以我希望它能够在不冒犯任何人的情况下使用它。

答案 3 :(得分:0)

您可以使用以下功能验证数字和数字。

function isDigit(number) {
    var letters = /^[0-9. ]+$/;
    var bl = false; 
    if (number.match(letters)) {

        bl = true;
    }
    return bl;
}

Ti.API.info(isDigit("12ass40.12456"));
Ti.API.info(isDigit("12350.12456"));

这只是一个示例,但您可以在textField的change事件上调用此函数进行验证。

答案 4 :(得分:0)

我们走吧!我在我的代码中这样做了!享受它

<html>
 <head>
  <script>
  function replacePonto(){
    var input = document.getElementById('qtd');
    var ponto = input.value.split('.').length;

    if (ponto > 2)
     input.value=input.value.substr(0,(input.value.length)-1);
    input.value=input.value.replace(/[^0-9.]/,'');

    if (ponto ==2)
     //this limit how much numbers after decimal point
      input.value=input.value.substr(0,(input.value.indexOf('.')+3));

     if(input.value == '.')
      input.value = "";
         }
  </script>
  </head>
  <body>
     <input type="text" id="qtd" maxlength="10" style="width:140px" onkeyup="return replacePonto()">
  </body>
</html>

答案 5 :(得分:0)

这对我来说很完美:

function validateNumberDouble(event) {
    var n = event.key;
    k = event.keyCode;
    v = event.target.value;

    if (k === 8 || k === 37 || k === 39 || k === 9 || k === 13) {
        return true;
    } else {
        var dot = v.split('.').length;

        if ((dot > 1 && n == '.') || (v.length == 0 && dot >= 1 && n == '.')) {
            return false;
        } else {
            if (n.match(/[^0-9.]/)) {
                return false;
            }else{
                if(v.indexOf('.')>0 && v.length - v.indexOf('.')>=3){
                    return false;
                }
            }
        }
    }
}

https://jsfiddle.net/renatoalexandro/rdeu4n1m