输入字段的属性maxlength正在变化,但输入无关紧要

时间:2013-12-30 07:08:37

标签: javascript jquery input attr

我有一个函数来限制用户可以在我的游戏的输入字段中键入的字符数。它的工作原理是,除非它的长度减少1或更多,用户仍然可以输入1个或更多的字符。

我检查检查员,它甚至可以正确显示最大长度变化。但是,无论出于何种原因,它仍然允许用户输入的长度等于变量在同一会话期间等于的最大字符数。这是一个错误吗?有什么办法让它正常工作吗?

my_var = 150000; //this var changes often, can go down to 0 or up to 1000000000

function limitNumberOfCharacters() {
    x = my_var.toString().length;
    $('.my_input_class').attr('maxlength', x);
}

limitNumberOfCharacters(); //this gets called often

编辑:http://jsfiddle.net/mDw6f/

2 个答案:

答案 0 :(得分:1)

EDITTTT:

您正在使用x作为全局变量,并且可能会从代码中的其他内容进行更改。使用var x = my_var.toString().length;(强调var

老实说,在看到这段代码后,我担心会出现更多潜在的问题,但我所做的只是在var之前添加xyz,它可以按照你想要的方式运行。

还修复了返回输入字段的先前下注金额的问题。现在结果为空白字段。

干杯

Real Fiddle Example

答案 1 :(得分:0)

尝试使用这个小提琴:

Working Demo

像我在代码中那样使用html输入,不需要为它指定maxlength属性。

<input type="text" class="my_input_class"/>

和脚本

my_var = 25; //this var changes often, can go down to 0 or up to 1000000000

function limitNumberOfCharacters() {
    x = my_var.toString().length;
    $('.my_input_class').attr('maxlength', x);
}

limitNumberOfCharacters();