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个字符),那么当我从电话号码框中跳出时,我的输入号码将被删除,并且不会显示错误。
这个问题有解决方法吗?
************ UPDATE ************** 经过进一步测试,我已经确认这只是maskedinput的一个问题。如果我完全从电话号码字段中删除验证,然后在电话号码文本框中输入部分电话号码,然后从中选项卡,则会出现相同的行为(删除文本框中的部分输入的号码)。更多谷歌搜索显示这是jquery.maskedinput的已知问题,但我找不到任何解决方案。
所以我的问题仍然存在..是否有解决这个问题的方法?
答案 0 :(得分:0)
我有一个类似的问题 - 失去焦点后,手机输入正在消失。好吧,我偶然发现了这个: http://blog.it0091.com/2011/04/03/jquery-masked-input-prevent-field-blank-out-on-blur/
这对我有帮助,所以我希望它对你有所帮助。 (也许这个答案应该放在原来的问题中?)