【问题标题】:it replaces a text input when multiple letter buttons are selected它替换了选择多个字母按钮时的文本输入
【发布时间】:2012-10-05 22:33:24
【问题描述】:

我在下面有一个 jsfiddle 应用程序:

JSFIDDLE

如果您打开 jsfiddle,您将看到一个包含“Answer”按钮的顶部控件。您还将看到一些字母按钮、一个“True”按钮和一个“False”按钮。

“True”和“False”按钮完美运行,这意味着如果用户单击“True”然后单击“False”,它会替换文本输入,因为您无法同时得到“True”的答案和“假”。

但是字母按钮有问题。如果单击字母按钮,您会意识到可以单击多个字母按钮,这很好,但问题是它会替换那些不正确的字母的文本输入。如果选择了多个字母按钮,那么它应该显示所有这些字母按钮的文本输入,而不是用选择的最新字母按钮替换文本输入。

那么有谁知道我需要在代码中更改什么才能实现这一点?

【问题讨论】:

  • 这是作业,不是吗?您将我们链接到您在学校服务器上的项目?

标签: javascript jquery html


【解决方案1】:

您在此处为按钮生成data-hid

var hid = "hidden" + id + n + "value";  
$(btn).attr("data-hid", hid);

基于此,您现在生成一个输入字段:

var input = '<input type="text" id="' + hid + '" value="' + value + '" name="' + id + 'value" />';

这里的id变量是按钮的id,例如answerC。因此,当您第一次单击该按钮时,您将获得 #hiddenanswerC0value 的隐藏信息。

但是,当您添加答案时,按钮将生成如下所示的 id:

.attr('id', $this.attr('id')+'Row');

所以最后会有一个额外的Row。所以data-hid和输入框也会不同(#hiddenanswerCRow0value)。

编辑: 另一个问题是您实际上并没有为新按钮创建数据隐藏。您只需在单击它们后为第一组按钮创建它。但是,当您创建第二组(单击后)并激活 C 按钮时,它不会设置 data-hid,因此您无法删除它。

【讨论】:

  • 让我换个小提琴,我想我可以为每个问题的每个答案生成一个计数,但我有一个不同的问题
  • 我已经更新了问题和小提琴,你能尝试解决这个问题吗?
  • 这是你在我发布的更新小提琴中提到的问题吗?
  • 没有。它指的是第一把小提琴。如果您对不相关的代码有其他问题,请打开另一个问题。完全改变问题会让人们感到困惑,因为答案不再与问题匹配(就像现在一样)。你也不能指望人们一步一步地做你的功课。尝试自己做,如果您有特定问题,请询问有关代码的特定问题。然后继续,如果您还有其他问题,请打开另一个。
【解决方案2】:

您遇到问题的第一个输入 ID 似乎没有正确设置。我显示它的 ID 为“#hiddenanswerC0value”,但如果我没记错的话,应该是“#hiddenanswerCRow0value”。我会再研究一下,但这可能足以让你弄清楚。

【讨论】:

  • 我将更新qustion,因为我已经改变了小提琴并且我有一个不同的问题,忘记原来的问题
  • 我已经更新了问题和小提琴,你能尝试解决这个问题吗?
猜你喜欢
  • 2017-01-16
  • 2011-09-09
  • 1970-01-01
  • 2020-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-26
  • 2011-01-11
相关资源
最近更新 更多