【问题标题】:it does not allow me to select buttons if something is entered in textbox如果在文本框中输入了某些内容,它不允许我选择按钮
【发布时间】:2011-12-11 17:40:57
【问题描述】:

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

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

代码在jsfiddle中,点击here

谢谢

【问题讨论】:

  • 有一个错误currenttotal is not defined 而不是一个以上的错误,你检查过firebug控制台吗

标签: jquery html button textbox


【解决方案1】:

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

Uncaught ReferenceError: currenttotal is not defined

是被这行代码抛出的:

console.log(currenttotal);


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


如果我在这一行设置断点: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/

【讨论】:

  • 所以我猜我需要移动 console.log(currenttotal)?
  • 我在答案中添加了更多内容。看看吧。
  • 虽然有一个问题,因此我为什么首先做 letter.String.fromCharCode(i) 。现在的问题是,如果我从网格中选择例如按钮“4”,它应该显示按钮“A”、“B”、“C”和“D”,但是如果在 Number for answers 文本框中输入了某些内容并让假设我想从网格中选择按钮“1”,它应该将显示更改为仅显示按钮“A”,但如您所见,它不会更改显示。
  • 好吧......好吧,我不完全理解你的目标行为,但我可以告诉你两件事:1. letter.String.fromCharCode(i) 会抛出一个错误,所以你可能不应该使用它。 2. 您需要更改代码以反映所需的行为。
  • 行为是网格中的按钮决定了您需要的选项数量,例如,如果我从网格中选择按钮“1”,它只会显示按钮“A”,因为这是唯一的选项,它用户从网格中选择按钮“2”,然后它会显示按钮“A”和“B”,因为这是两个选项等等
猜你喜欢
  • 1970-01-01
  • 2019-02-09
  • 2016-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多