如何只输入数字?

时间:2013-12-24 19:00:15

标签: jquery input

我有以下html和jquery代码(接替以前的同事)

<div id="div01">
<input type="text" id="txt01" class="NumberMask" maxlength="12"/>
</div>

this.Init=function(){
...
$("#div01").find(".NumberMask").attr("alt", "p0x3p0S").autoNumeric();
...}

工作正常。我最多只能输入12个号码。但如果我改变maxlength =“16”,不知怎的,我只能输出最多15个数字。任何人都可以解释这条线的意思吗?

$("#div01").find(".NumberMask").attr("alt", "p0x3p0S").autoNumeric();

为什么我只能放15个而不是16个?

2 个答案:

答案 0 :(得分:0)

.autoNumeric()是一个名为autoNumeric的jQuery插件。

根据设置的不同,插件会覆盖您设置的所有maxlength。我认为maxlength元素上的<input>与从头开始设置的maxlength相同只是巧合。

.attr("alt", "p0x3p0S")只需将alt上的<input>设置为alt="p0x3p0S"即可。这将是结果元素:

<input type="text" id="txt01" alt="p0x3p0S" class="NumberMask" maxlength="12"/>

p0x3p0S表示我不知道。可能是某种标识符。需要查看其余的代码才能确定问题,但很可能与您的问题无关。

答案 1 :(得分:0)

从版本1.9.43开始,

autoNumeric完全忽略了html maxlength。相反,它使用其vMax设置作为模型,以表示数字的大小。我相信他们这样做是为了容纳小数点。

只有整数maxlength 5的设置是: vMax:99999, vMin:0, aSep:''

explantation:vMax允许五个字符并删除小数点。将vMin设置为零可确保其中一个字符空格永远不会是负数的减号。 aSep设置为空('')确保它不会为了轻松读取大数而注入逗号。

我有一个类似的问题,不得不构建一个小函数,通过获取元素maxlength并创建一个包含多个九的字符串,然后使用该字符串设置自动数字来创建vMax设置。但这是一个独特的案例,应用程序动态自动生成html和javascript绑定,我不得不让它尊重maxlength属性。您可以在最有可能为该对象的jquery中设置它。