0

我正在尝试实施电话号码。移动网站的掩蔽。而且我无法使用 jquery mask 插件,因为它在设备中无法正常工作。下面的实现在 Android Chrome 移动浏览器中运行良好。但是在Android 默认浏览器的情况下,当我尝试使用退格键删除所有数字时,最后一些(2/3)数字/数字不会被清除。我猜this.value += "-"; 没有更新某些文本框属性。 电话号码格式为(例如###-###-####)

HTML

<input id="phoneNo" type="tel" maxlength="12" placeholder="Phone"/>

JavaScript

var phoneNo = document.getElementById("phoneNo");
phoneNo.addEventListener("textInput",function(){
if(this.value.toString().length==3 || this.value.toString().length==7) {
   this.value += "-";            
}
});
4

2 回答 2

0

看看 jQuery on() 方法,因为并非所有浏览器都支持 addEventListener,我猜这就是问题所在。

http://api.jquery.com/on/

于 2013-05-31T12:10:41.810 回答
0

Darshan先生请看http://jsfiddle.net/2dJAN/51/

在我的应用程序中,我也在使用这些功能。这个例子

  1. 将允许用户在字段中仅键入整数
  2. 这将自动在数字之间添加“-”,例如123-456-7890格式
  3. 您可以删除该字段内的所有数字。

    $("#fax_field").on("keyup", function(event) {
            var limitField = $(this).val().trim().length;
            var limit = "12"
            this.value = this.value.replace(/[^0-9_\-\.]/g, '');
            if (event.keyCode != 8) {
              if (limitField == 3) {
                var fax_value = $(this).val().trim().concat('-');
                $("#fax_field").val(fax_value);
              } else if (limitField == 7) {
                var fax_value = $(this).val().trim().concat('-');
                $("#fax_field").val(fax_value);
              }
            }
            if (limitField > limit) {
                $("#fax_field").val($(this).val().trim().substring(0, limit));
            }
        });
    

请试试这个。让我知道你的意见。

于 2013-05-31T12:18:06.640 回答