如何阻止用户在文本框中插入字符,只有数字可以插入jQuery Mobile

时间:2012-07-13 05:28:15

标签: jquery html html5 jquery-mobile cordova

我在jQuery mobile中实现了 iphone& android app。*我使用了**纯jQuery mobile

在文本框中输入电话号码。我使用TYPE =“TEL”'这是用于numaric键盘。

<input type="tel" style=" width:81%;" id="contactNumber" value="" class="ui-input-text ui-body-c ui-corner-all ui-shadow-inset" /> 

但是用户也可以输入文本框,这是不必要的东西。

How can I prevent user from inserting characters other than numbers?

对于移动设备用户来说,如果唯一的输入可能是数字,则会更舒服,因为他们必须按下每个按钮才能获得数字而不是字母!

我尝试在输入字段中添加TYPE=”TEL” TYPE=”mumber”,但它无法阻止。

6 个答案:

答案 0 :(得分:13)

$(document).ready(function() {
    $('#contactNumber').keyup(function() {
        var numbers = $(this).val();
        $(this).val(numbers.replace(/\D/, ''));
    });
});

这应该替换任何带有空字符*的非数字,因为它们被放入,无需一次搜索多个非数字。

答案 1 :(得分:7)

以上都没有为我工作,但我找到了一个完全符合我需要的解决方案(禁止输入字段中的特殊字符)。阻止和提醒用户。

    <script>
     $("#userlogin").keypress(function(e) {
      if (String.fromCharCode(e.which).match(/[^A-Za-z0-9_ ]/)) {
        e.preventDefault();
        alert("Special characters are not allowed. Use 'A-Z', 'a-z' and '0-9'.");
       }
     });
    </script>

答案 2 :(得分:1)

之前看过这个回答。查看http://www.texotela.co.uk/code/jquery/numeric/

您只需更改自己的班级ID,并在页面上显示此代码:

$(document).ready(function(){
    $(".numeric").numeric();
});

如果您不想使用jQuery,您可以编写自己的函数并将其命名为onkeyup事件

请参阅:http://www.htmlcodetutorial.com/forms/index_famsupp_158.html

另一个选择是使用步骤属性:

http://www.w3.org/TR/html-markup/input.number.html#input.number.attrs.step.float

<input type="number" step="0.01" min="0" >

答案 3 :(得分:1)

type =“tel”是HTML 5,而不是jqueryMobile。 浏览器支持HTML 5输入类型的后续设备可以很好地呈现这些框。但对于旧版本,需要附加脚本。这些潦草已经发布在上面的答案中。

答案 4 :(得分:0)

$('#contactNumber').bind('keypress', function (event) {
        event = event || window.event; canAdd = new Boolean(false);
        canAdd = ((event.charCode > 47) && (event.charCode < 58) || (event.charCode == 32) || (event.charCode == 40) || (event.charCode == 41) || (event.charCode == 43) || (event.charCode == 45) || (event.charCode == 124));
        if (!canAdd && event.charCode)
            return false;
    }); 

但最好使用HTML5 rel属性

答案 5 :(得分:0)

HTML

 input type="tel" (keypress)="isNumberKey($event)" 

脚本

isNumberKey(evt: any) { < br >
        // to accept only numbers in contact field<br>
        if ( < br >
            (evt.key >= '0' && evt.key <= '9') || < br >
            evt.key == "Backspace" || < br >
            evt.key == "Delete" || < br >
            evt.key == "ArrowLeft" || < br >
            evt.key == "ArrowRight" < br >
        ) { < br > //"Backspace" etc for 'firefox' browser<br>
                return true; < br >
        } < br >
        return false; < br >
}