我正在查看http://digitalbush.com/projects/masked-input-plugin/
我这样称呼它:
$(control).mask('999-999-9999');
如果出现问题,我不希望它丢弃用户输入,例如他们还没有完成
[407-555-____]
如果你在键入这么多之后离开了这个领域,它就会清除它。我想留下它以便以后完成。
我是jQuery的新手,我已经浏览了他的来源,但我找不到任何方法可以做到这一点,我也找不到任何方法来编辑它来实现我想要的,因为代码是我的眼睛是奥术。
答案 0 :(得分:52)
将autoclear选项设置为false。
$(control).mask('999-999-9999', {autoclear: false});
答案 1 :(得分:45)
看起来我应该让整个面具可选:
mask('?999-999-9999')
这样控件认为用户拥有的是“有效”,我可以继续。即使它不是面具的可选部分。
答案 2 :(得分:2)
您应该删除input.val("");
函数中的语句checkVal()
以获得正确的解决方案。
如果您使用的是缩小版,则应搜索并删除声明:
if(!a&&c+1<i)f.val(""),t(0,k);else
答案 3 :(得分:0)
除了删除checkVal()中的input.val(“”)之外,您还可以将调用更改为clearBuffer。 在原始代码中它是:clearBuffer(0,len);删除所有用户输入。 如果你把它改成clearBuffer(lastMatch + 1,len);将显示用户输入,然后显示完成正确输入所需的掩码占位符。
我还在.bind中添加了一条用户消息。这对我们有用,因为我们使用MaskedInput只输入一种类型。我正在检查任何比第7位更进一步的输入,因为这是用户输入开始的地方。
这是我做的:
.bind("blur.mask", function() {
// find out at which position the checkVal took place
var pos = checkVal();
// if there was no input, ignore
if (pos <=7) {input.val(""); clearBuffer(0, len);}
// if the user started to input something, which is not complete, issue an alert
if (pos > 7 && pos < partialPosition) alert("Tell the user what he needs to do.");
if (input.val() != focusText)
input.change();
})
答案 4 :(得分:0)
添加占位符可以解决问题。
$(control).mask('999-999-9999');
将空的占位符添加到面具中。见下文
$(control).mask('999-999-9999', { placeholder: "" });
默认情况下会替换输入文本字段中的_。所以如果输入长度是动态的并且不是固定的,那么就会有任何_左。
答案 5 :(得分:0)
尝试更新文件jquery.maskedinput.js
在函数函数中checkVal(允许)设置参数allow on true。对我有帮助。
function checkVal(allow) {
allow = true; ///add this command
//..............
}
答案 6 :(得分:-2)
在插件脚本中寻找unmask方法。
$('#checkbox').unmask();