1

这是一个令人难以置信的问题,我遇到了麻烦。我有一个文本字段。此文本字段需要容纳 4 种格式的美国手机号码

  1. XXX-XXX-XXXX
  2. XXXXXXXXXX
  3. X-XXX-XXX-XXXX
  4. XXXXXXXXXXXX

当输入最后一个字符时,它需要通过 ajax 进行检查,我对此没有任何问题。

在输入、复制和粘贴、删除以及在该字段中输入数字的所有可能方式时,我需要检查文本框是否包含完整的手机号码。

我尝试用 $("#id").keyup 检查它,但是当你粘贴一些东西时它不起作用。

有没有办法通过间隔或其他方式检查该字段中是否有 10 或 11 个字符,而不管它是如何到达那里的?[编辑]

这是我找到的解决方案

var checkMsisdnInterval = window.setInterval( function () {
    var msisdn = getdigits($("#newSessionMsisdn").val());

    if(msisdn.length == 10 && !checked) {   
        doPreCheck(msisdn);
        checked = true;
    } else if(checked == true) {
        //do something here
    } else {
        //do something else 
    }
}, (1000 * 60 * 0.1));

$("#newSessionMsisdn").keyup(function(){
    checked = false;
});

function getdigits (s) {
   return s.replace (/[^\d]/g, "");
}

它像炸弹一样工作。感谢所有的答复

4

2 回答 2

0

使用 jQuery,你看过 change 事件吗?

http://api.jquery.com/change/

于 2012-09-21T09:12:14.117 回答
0

为什么不在 ajax 调用中检查它,使用 beforeSend 方法并检查输入字段的长度。

供您参考,http://api.jquery.com/jQuery.ajax/

于 2012-09-21T09:05:25.633 回答