如果在文本框中输入了某些内容,则不允许我选择按钮

时间:2011-12-11 17:40:57

标签: jquery html button textbox

在我的应用程序中,用户通过单击(打开网格)链接并选择按钮来选择按钮。然后会发生的是,根据用户选择的内容,下面会出现一组按钮。用户可以确定要在文本框中选择多少个答案(换句话说,用户想要选择多少个按钮)。例如,如果用户在文本框中输入“2”,则用户只能在下面选择2个按钮。问题是如果用户在文本框中键入数字,则不允许用户选择按钮(如果按钮的颜色变为绿色,则选择一个按钮)。但如果我删除文本框中的数字,那么如果我点击一个按钮就会出现一条警告消息,说明你应该确定你想要的答案数量,这是正确的。

那么,如果“答案数量”文本框中有数字,为什么不允许我选择任何按钮?

代码在jsfiddle中,单击here

谢谢

1 个答案:

答案 0 :(得分:0)

打开浏览器控制台。单击按钮时,您将看到以下错误:

Uncaught ReferenceError: currenttotal is not defined

这行代码抛出了它:

console.log(currenttotal);

enter image description here


还有一个问题似乎阻止了currenttotal的初始化:

enter image description here


如果我在这一行放置一个断点:var letter = $('#numberAnswerTxt').val();(在getButtons内),我可以看到变量"letter"是一个看起来像"3"的字符串。字符串没有名为String的属性,因此letter.String未定义。这就是抛出TypeError: Cannot call method 'fromCharCode' of undefined的原因。

所以我认为 for循环应该是这样的:

for(var i = 65; i <= 90; i++) { // iterate over character codes for A to Z
    var letter = String.fromCharCode(i);
    document.getElementById("answer" + letter).className = "answerBtnsOff";
}

由于您正在使用jQuery,因此可以使循环体更简洁:

for(var i = 65; i <= 90; i++) { // iterate over character codes for A to Z
    var letter = String.fromCharCode(i);
    $("#answer" + letter).prop("class", "answerBtnsOff");
}

现在可行

http://jsfiddle.net/mattball/ZCehW/