【问题标题】:how to enter only numeric values in ipad text box?如何在 ipad 文本框中只输入数值?
【发布时间】:2012-12-27 05:02:16
【问题描述】:

我在将文本框限制为仅限数值时遇到问题。我使用了普通方法,但它只适用于 Windows,不适用于 ipod,它允许用户输入字符串和特殊字符。 ,如果你知道如何在 iOS 上限制这个,请帮助,

检查一下....

if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 || event.keyCode == 116 ||
            (event.keyCode == 65 && event.ctrlKey === true) ||
            ((event.keyCode >= 35 && event.keyCode <= 45) || event.keyCode == 190 || event.keyCode == 100 || event.keyCode == 110)) {
                if ((event.keyCode == 190 || event.keyCode == 100 || event.keyCode == 110) && $(this).val().indexOf('.') != -1) {
                    event.preventDefault();
                }
                else {return;}
        }
        else {
            // Ensure that it is a number and stop the keypress
            if ((event.keyCode >= 219 && event.keyCode <= 222) || (event.keyCode >= 106 && event.keyCode <= 109) || event.keyCode == 111
             || event.keyCode == 32 || event.keyCode == 59 || (event.keyCode >= 186 && event.keyCode <= 189) || event.keyCode == 191 || event.keyCode == 192 ||
        event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || (event.keyCode > 105 && event.keycode < 190 )) ){
            /*
             if (checker.apple) {
                // alert('Hh');
                 alert(event.keyCode);
        //$.browser.apple=true;
        event.shiftKey || (event.keyCode <= 48 || event.keyCode >= 57) && (event.keyCode < 96 || (event.keyCode > 105 && event.keycode < 190 ))
        event.preventDefault();
    }*/
                //alert(event.keyCode);
                /*event.preventDefault();
            }
        } 

【问题讨论】:

  • “我使用了常规方法”并不能帮助我们了解您已经尝试过什么。请解释您已经尝试过的内容,这样我们就不会费心提出多余的建议

标签: javascript jquery html ios


【解决方案1】:

限制用户只能输入数字:

  - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    {
        if ([string length] == 0 && range.length > 0)
        {
            textField.text = [textField.text stringByReplacingCharactersInRange:range withString:string];
            return NO;
        }

        NSCharacterSet *nonNumberSet = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789"] invertedSet];
        if ([string stringByTrimmingCharactersInSet:nonNumberSet].length > 0)return YES;

        return NO;
    }

【讨论】:

  • 先生,它的逻辑很好......请告诉我如何将它嵌入到我的代码中?
  • 好了把我写的代码放到ViewController.m里面看看textField.text部分添加你自己的textfield name..
  • 这是objective-c ..不是javascript
【解决方案2】:

当用户按下任何按钮并触发 checkAlpha() 函数时,您可以使用onkeypress()

并使用以下代码检测是数字还是字母

function checkAlpha() {
x = event.charCode;
if (( x >= 65  && x <=90) || (x >= 97 && x <=122))
{
alert("Yes, it is alphabet");
}
else
{
alert("Sorry, only alphabet allowed");
event.preventDefault();
}
}

在最新的安卓和桌面上运行良好,请在苹果设备上确认并告诉我。

【讨论】:

    【解决方案3】:

    请按照此代码在文本框中仅输入数值。确保这些DELEGATE 方法

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    char *x = (char*)[string UTF8String];
    //if(DEBUG_MODE) NSLog(@"char index is %i",x[0]);
    if([string isEqualToString:@"0"] || [string isEqualToString:@"1"] ||  [string isEqualToString:@"2"] ||  [string isEqualToString:@"3"] ||  [string isEqualToString:@"4"] ||  [string isEqualToString:@"5"] ||  [string isEqualToString:@"6"] ||  [string isEqualToString:@"7"] ||  [string isEqualToString:@"8"] ||  [string isEqualToString:@"9"] || x[0]==0 ) {
    
        NSUInteger newLength = [textField.text length] + [string length] - range.length;
        return (newLength > 6) ? NO : YES;
    } else {
        return NO;
    }
    }
    

    【讨论】:

    • 不,我没有使用 x 代码先生 .. 我只是在 jquery 中做过 ..老实说,我在互联网上搜索并嵌入了它
    猜你喜欢
    • 2011-08-21
    • 1970-01-01
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    • 2012-07-25
    • 1970-01-01
    相关资源
    最近更新 更多