【发布时间】:2012-03-05 03:15:44
【问题描述】:
here 上还有另一个 StackOverflow 帖子,这是我遇到的确切问题。但只有一个答案,并没有那么有用。
所以我重新发布,希望有人现在已经找到解决这个问题的方法。
我有一个带有可选电话号码字段的表单,其中应用了 jquery maskedInput 插件和 jquery 验证器插件。
在没有特殊设置的情况下,每次我在将电话号码字段设置为空(这是可选的)后跳出该字段时,验证器都会返回一个错误,提示“输入有效的电话号码”。但该字段不是必需的。
然后,基于this post here,我尝试将以下代码添加到验证器的 onfocusout 事件中。
onfocusout: function (element)
{
if (!this.checkable(element) && (element.name in this.submitted || !this.optional(element)))
{
var currentObj = this;
var currentElement = element;
var delay = function () { currentObj.element(currentElement); };
setTimeout(delay, 0);
}
}
起初,这似乎可以解决问题。如果我输入有效的电话号码,则没有错误。我没有输入电话号码,没有错误。但是如果我输入了一个无效的电话号码(例如只输入 9 个字符),那么当我跳出电话号码框时,我输入的号码会被删除,并且不会显示错误。
这个问题有解决办法吗?
************更新************** 经过进一步测试,我已经确认这只是 maskedinput 的问题。如果我从电话号码字段中完全删除验证,然后在电话号码文本框中输入部分电话号码,然后将其退出,则会发生相同的行为(删除文本框中部分输入的号码)。更多谷歌搜索表明这是 jquery.maskedinput 的一个已知问题,但我找不到任何解决方案。
所以我的问题仍然存在.. 这个问题有解决方案吗?
【问题讨论】:
标签: jquery maskedinput