8

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

JSFIDDLE

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

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

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

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

4

2 回答 2

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组,因此您无法删除它。

于 2012-10-05T22:50:30.750 回答
0

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

于 2012-10-05T22:41:52.773 回答