javascript - 选择多个字母按钮时,它会替换文本输入

标签 javascript jquery html

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

JSFIDDLE

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

“True”和“False”按钮工作得很好,这意味着如果用户点击“True”然后点击“False”,它会替换文本输入,因为你不能同时回答“True”和“假”。

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

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

最佳答案

您在此处为按钮生成一个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,因此您无法删除它。

关于javascript - 选择多个字母按钮时,它会替换文本输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12754885/

相关文章:

javascript - 按索引位置解析json对象数组

javascript - iOS Safari 随机调整大小和滚动问题

javascript - 使用 webpack 进行 Karma 测试

javascript - 在 JavaScript 中将多个 div 放入数组中

javascript - jasmine-jquery 与 selenium 驱动程序(如 Nightwatch.js) - 何时选择其中每一个?

javascript - 叠加层未全高

javascript - 将对象数组打印到 HTML 数据属性中

javascript - 为什么 Chrome 开发工具显示未绑定(bind)到我的元素的点击事件监听器?

javascript - 使用 Fabric js 在 Canvas 上绘制圆形和矩形

php - 为什么我的 PHP 页面响应整个 HTML 源代码,而不仅仅是我正在回显的数据?