在here上还有另一篇StackOverflow帖子,这就是我遇到的问题。但只有一个答案,而且没有那么大的帮助。
所以我重新发布,希望现在有人已经找到了解决这个问题的方法。
我有一个带有可选电话号码字段的表单,其中应用了jquery maskedInput插件和jquery验证器插件。
在没有特殊设置的情况下,每次我将phone number字段设置为空(这是可选的)后,每次我跳出phone number字段时,验证器都会返回一个错误,提示“输入有效的电话号码”。但该字段不是必填字段。
因此,基于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个字符),则当我按tab键离开电话号码框时,我输入的号码将被删除,并且不会显示任何错误。
有没有解决这个问题的办法?
*更新*经过进一步测试,我确认这只是maskedinput的问题。如果我从“电话号码”字段中完全删除验证,然后在“电话号码”文本框中输入部分电话号码,然后按tab键离开该文本框,则会发生相同的行为(删除文本框中部分输入的号码)。更多的谷歌显示,这是jquery.maskedinput的一个已知问题,但我找不到任何解决方案。
所以我的问题仍然存在..有没有解决这个问题的办法?
发布于 2013-04-24 02:33:34
我也有类似的问题--在失去注意力后,手机输入对我来说是空白的。嗯,我偶然发现了这个:http://blog.it0091.com/2011/04/03/jquery-masked-input-prevent-field-blank-out-on-blur/
这肯定对我有帮助,所以我希望它对你也有帮助。(也许这个答案应该放在你的原始问题中?)
https://stackoverflow.com/questions/9561209
复制相似问题