如何在我的所有应用程序中限制所有文本框条目 - jquery

时间:2017-05-20 06:10:30

标签: javascript jquery

这是小提琴 http://jsfiddle.net/HGJb3/

HTML

<input class="anything" type="text">
<input type="text">
<input id="someid" type="text">
<input type="text">
<input id="someotherid" type="text">
<input type="text">
<input type ="text">
<br />
<br />
<br />
working one
<input id="text" type="text">

JS

$('#text').keypress(function (e) {
    var regex = new RegExp("^[a-zA-Z0-9-]+$");
    var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
    if (regex.test(str)) {
        return true;
    }    
    e.preventDefault();
    return false;
});

现在我想对所有文本框应用此按键功能,而不仅仅是最后一个。如何编辑此功能以使其适用于所有人?

不能把所有的ID都放一样。

必须使其适用于@ html.textBoxFor - 可以将datannootation放在模型中,这就是为什么

3 个答案:

答案 0 :(得分:1)

您可以尝试使用此输入文本框:小提琴Working fiddle

Fiddle example with popup

$('input[type="text"]').keypress(function (e) {
    var regex = new RegExp("^[a-zA-Z0-9-]+$");
    var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
    if (regex.test(str)) {
        return true;
    }

    e.preventDefault();
    return false;
});

答案 1 :(得分:1)

就像你说的那样(不能将所有的ID相同),这根据HTML无效,因为在单个页面中,您不能对多个元素使用相同的Id。即使你将相同的Id分配给几个元素,但是当从客户端使用id获取该元素时,它将从TOP中获取DOM中的第一个元素。

因此,在这种情况下,为要应用该正则表达式的所有文本框分配一个公共类,然后将该公共类上的keypress事件绑定为选择器。

Working fiddle

HTML

<input class="textClass anything" type="text">
<input class="textClass" type="text">
<input class="textClass" id="someid" type="text">
<input class="textClass" type="text">
<input class="textClass" id="someotherid" type="text">
<input class="textClass" type="text">
<input class="textClass" type="text">
<br />
<br />
<br />
working one
<input class="textClass" id ="text" type="text">

JS

$('.textClass').keypress(function (e) {
    var regex = new RegExp("^[a-zA-Z0-9-]+$");
    var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
    if (regex.test(str)) {
        return true;
    }
    e.preventDefault();
    return false;
});

我希望这适合你:)

答案 2 :(得分:0)

Just change your selector to "input:text" if you are using textbox 
$('input:text').keypress(function (e) {
    var regex = new RegExp("^[a-zA-Z0-9-]+$");
    var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
    if (regex.test(str)) {
        return true;
    }

    e.preventDefault();
    return false;
});