Jquery 限制文本字段中的用户输入以确认模式
我在jsp中有一个id为countryCode的文本字段,用于输入电话号码的国家代码。 用户应能够以数字或带+号前缀的数字形式输入国家代码。 例如:91或+91或1或+1等。。 请建议使用jquery函数来限制用户输入时的i/p,以仅接受此模式 尝试使用以下代码Jquery 限制文本字段中的用户输入以确认模式,jquery,Jquery,我在jsp中有一个id为countryCode的文本字段,用于输入电话号码的国家代码。 用户应能够以数字或带+号前缀的数字形式输入国家代码。 例如:91或+91或1或+1等。。 请建议使用jquery函数来限制用户输入时的i/p,以仅接受此模式 尝试使用以下代码 $('input[id="countryCode"]').bind('keypress', function (event) { var regex = new RegExp("^[+0-9\b]+$");
$('input[id="countryCode"]').bind('keypress', function (event) {
var regex = new RegExp("^[+0-9\b]+$");
var str= $( "#countryCode" ).val();
var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
if (!regex.test(key) || (key=="+" && str.length>0)) {
event.preventDefault();
return false;
}
});
但是输入91后,我无法输入+作为第一个字符您需要比较键入的字符及其位置,以确定其是否有效。如果文本框中已经有内容,并且用户尝试在第一个位置键入
+
,则检查(key==“+”&&str.length>0)
将失败
工作小提琴:
HTML:
您需要比较键入的字符及其位置,以确定其是否有效。如果文本框中已经有内容,并且用户尝试在第一个位置键入
+
,则检查(key==“+”&&str.length>0)
将失败
工作小提琴:
HTML:
像这样使用jquery掩码mask min插件是否具有支持该要求的灵活性-用户可以输入+作为第一个字符,也可以不输入+作为第一个字符,其他字符将是没有长度限制的数字,如jquery 1.7,the.on()方法是将事件处理程序附加到文档的首选方法。即使更改为该方法也无法使用$('input[id=“countryCode”]”)。在('keypress',函数(事件){var regex=new RegExp(^[+0-9\b]+$);var str=$(“#countryCode”).val();var key=String.fromCharCode(!event.charCode?event.which:event.charCode);if(!regex.test(key)|(key=“+”&&str.length>0)){event.preventDefault();return false;});像这样使用jquery掩码mask min插件是否具有支持该要求的灵活性-用户可以输入+作为第一个字符,也可以不输入+作为第一个字符,其他字符将是没有长度限制的数字,如jquery 1.7,the.on()方法是将事件处理程序附加到文档的首选方法。即使更改为该方法也无法使用$('input[id=“countryCode”]”)。在('keypress',函数(事件){var regex=new RegExp(^[+0-9\b]+$);var str=$(“#countryCode”).val();var key=String.fromCharCode(!event.charCode?event.which:event.charCode);if(!regex.test(key)|(key=“+”&&str.length>0)){event.preventDefault();return false;});
<input id="countryCode" type="text">
$('input[id="countryCode"]').bind('keypress', function (event) {
var regex = new RegExp("^[+0-9\b]+$");
var str= $( "#countryCode" ).val();
var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
if (!regex.test(key)){
event.preventDefault();
return false;
}
else if (str.length > 0) {
if (key == "+" && $(this).getCursorPosition() != 0){
event.preventDefault();
return false;
}
}
});
// Borrowed from: http://www.fourthbottle.com/2014/03/how-to-get-cursor-position-in-textbox.html
$.fn.getCursorPosition = function () {
var pos = 0;
var el = $(this).get(0);
// IE Support
if (document.selection) {
el.focus();
var Sel = document.selection.createRange();
var SelLength = document.selection.createRange().text.length;
Sel.moveStart('character', -el.value.length);
pos = Sel.text.length - SelLength;
}
// Firefox support
else if (el.selectionStart || el.selectionStart == '0')
pos = el.selectionStart;
return pos;
}