复选框未选中onclick JavaScript

巴吉拉特

我试图在单击复选框时添加一个输入字段,并且希望选中该复选框(这是其默认行为!),但是即使在输入字段出现后也没有选中该复选框。以下是我的带JavaScript的HTML代码。

function check_test() {
  if (document.contains(document.getElementById("test_input"))) {
    document.getElementById("test_input").remove();
  }
  document.getElementById("test_div").innerHTML += "<input type='text' name='test_input' id='test_input'/>";
}
<div id="test_div">
  <input type="checkbox" name="test_checkbox" id="test_checkbox" onclick="check_test()" />
</div>

我也在JsFiddle中尝试了此操作,它给出了相同的错误,并且不确定我在做什么错。

https://jsfiddle.net/1yLb70og/1/

肮脏的

您有条件地删除#test_inputDOM中是否存在,但else添加时就没有使用因此,无论您处于哪种状态,都必须在将输入添加到DOM的情况下结束该函数。

正如其他人提到的那样,当您+=使用innerHTML时,实际上是在创建一个全新的字符串,从而将原始复选框重新初始化为未选中状态。

您可能只想在包装器上附加一个新的孩子。我也改用了该onchange事件,因此无论单击还是以编程方式选中该框,它都将执行您想要的操作。

function check_test(checkbox) {
  const checked = checkbox.checked; // is it checked?
  const testInput = document.getElementById("test_input"); // test_input element
  
  // if it's checked and doesn't have an input, add it
  if (checked && !testInput) {
    const newInput = document.createElement('input');
    newInput.type = 'text';
    newInput.name = 'test_input';
    newInput.id = 'test_input';
    checkbox.parentNode.appendChild(newInput);
  }
  // otherwise, if it's not checked and there is an input in the DOM, remove it
  else if (!checked && testInput) {
    document.getElementById("test_input").remove();
  }
}
<div id="test_div">
  <input type="checkbox" name="test_checkbox" id="test_checkbox" onchange="check_test(event.target)" />
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何取消选中纯JavaScript中的复选框?

来自分类Dev

选中复选框并触发更改事件javascript

来自分类Dev

javascript在复选框上隐藏/显示div:已选中/未选中

来自分类Dev

如何使用JavaScript或jquery选中/取消选中复选框?

来自分类Dev

javascript添加复选框选中的值

来自分类Dev

Javascript select复选框按“名称”选中的计数

来自分类Dev

JavaScript复选框onclick函数

来自分类Dev

javascript通过单击标签确认选中复选框

来自分类Dev

jQuery / JavaScript:选中所有复选框并选中每个复选框以显示div

来自分类Dev

javascript laravel-选中复选框后调用函数

来自分类Dev

复选框未在javascript中选中?

来自分类Dev

取消选中Bootstrap复选框按钮-纯JavaScript

来自分类Dev

如果未选中复选框,则禁用Javascript按钮-问题

来自分类Dev

为什么此javascript复选框始终保持未选中状态?

来自分类Dev

如何获取Javascript中仅选中的复选框的值?

来自分类Dev

通过javascript中选中的复选框值

来自分类Dev

无法将所有复选框重置为未选中的javascript

来自分类Dev

选中复选框并触发更改事件javascript

来自分类Dev

javascript在复选框上隐藏/显示div:已选中/未选中

来自分类Dev

javascript中复选框的选中属性

来自分类Dev

带有javascript的Xforms-确定复选框处于选中状态还是未选中状态

来自分类Dev

复选框上的javascript click事件导致未选中该复选框

来自分类Dev

如何在不使用JavaScript的情况下处理未选中的复选框数组值?

来自分类Dev

JavaScript-使用“已选中/未选中的复选框”作为“ IF ELSE条件语句”

来自分类Dev

在JavaScript中显示选中的复选框

来自分类Dev

如果未选中任何复选框,则Javascript将显示表单的其余部分,如果其中的1或2个为复选框,则将其隐藏

来自分类Dev

Javascript - 基于数组值选中/取消选中复选框

来自分类Dev

Javascript 复选框标记过滤器:未选中时隐藏结果的问题

来自分类Dev

使用 Javascript 选中/取消选中复选框

Related 相关文章

  1. 1

    如何取消选中纯JavaScript中的复选框?

  2. 2

    选中复选框并触发更改事件javascript

  3. 3

    javascript在复选框上隐藏/显示div:已选中/未选中

  4. 4

    如何使用JavaScript或jquery选中/取消选中复选框?

  5. 5

    javascript添加复选框选中的值

  6. 6

    Javascript select复选框按“名称”选中的计数

  7. 7

    JavaScript复选框onclick函数

  8. 8

    javascript通过单击标签确认选中复选框

  9. 9

    jQuery / JavaScript:选中所有复选框并选中每个复选框以显示div

  10. 10

    javascript laravel-选中复选框后调用函数

  11. 11

    复选框未在javascript中选中?

  12. 12

    取消选中Bootstrap复选框按钮-纯JavaScript

  13. 13

    如果未选中复选框,则禁用Javascript按钮-问题

  14. 14

    为什么此javascript复选框始终保持未选中状态?

  15. 15

    如何获取Javascript中仅选中的复选框的值?

  16. 16

    通过javascript中选中的复选框值

  17. 17

    无法将所有复选框重置为未选中的javascript

  18. 18

    选中复选框并触发更改事件javascript

  19. 19

    javascript在复选框上隐藏/显示div:已选中/未选中

  20. 20

    javascript中复选框的选中属性

  21. 21

    带有javascript的Xforms-确定复选框处于选中状态还是未选中状态

  22. 22

    复选框上的javascript click事件导致未选中该复选框

  23. 23

    如何在不使用JavaScript的情况下处理未选中的复选框数组值?

  24. 24

    JavaScript-使用“已选中/未选中的复选框”作为“ IF ELSE条件语句”

  25. 25

    在JavaScript中显示选中的复选框

  26. 26

    如果未选中任何复选框,则Javascript将显示表单的其余部分,如果其中的1或2个为复选框,则将其隐藏

  27. 27

    Javascript - 基于数组值选中/取消选中复选框

  28. 28

    Javascript 复选框标记过滤器:未选中时隐藏结果的问题

  29. 29

    使用 Javascript 选中/取消选中复选框

热门标签

归档