【问题标题】:changing ''checked' attribute of a checkbox using javascript使用javascript更改复选框的''checked'属性
【发布时间】:2012-08-17 00:09:11
【问题描述】:

现在当它第一次加载 html 页面时,我的复选框是这样创建的:

<input type="checkbox" id="CBOX1" name="CBOX1" onclick="onCBOX(this)" disabled/>

在同一个 html 中的函数中:

boolean checked = true;
document.theForm.elements['CBOX1'].checked = true;

由于某种原因,稍后在页面上调用该函数时,未选中复选框值。是因为当我第一次创建复选框时,我创建它时没有“选中”属性?然后当我为它分配一个值时,该元素似乎不再包含选中的属性,就像我检查页面源时一样。还是一样的……

<input type="checkbox" id="CBOX1" name="CBOX1" onclick="onCBOX(this)" disabled/>

为了简单起见,我确定使用 AJAX 对该元素的其他属性进行了更改,但我不知道为什么不保留选中的属性...还有什么替代方法?

【问题讨论】:

  • checked 是变量吗?如果是,它在哪里定义?它有什么价值?您必须为 document.theForm.elements['CBOX1'].checked 分配一个布尔值。
  • checked 在 JavaScript 的第一行中来自哪里?复选框的checked 属性应该是一个布尔值,真或假。
  • checked 是一个已定义的布尔变量,它是真还是假?
  • 大声笑。 3 个人有同样的问题

标签: javascript html ajax jsp


【解决方案1】:

勾选复选框:

document.theForm.elements['CBOX1'].checked = true;
document.theForm.elements['CBOX1'].checked = "checked"; 

取消选中复选框:

document.theForm.elements['CBOX1'].checked = false; 

如果您希望在加载时取消选中它,请不要触摸它,默认情况下它是未选中的。

此外,如果您在输入字段中使用 disabled 属性,则不会注册任何点击事件。

请参阅此jsfiddle 以获取示例。

编辑

如果可点击性不是问题,那么就按照我已经指出的去做。这是一个完整的工作示例。

<html>
 <head>
 </head>
 <body>
  <input id="tar" type="checkbox" disabled />
  <input type="checkbox" onclick="callFunc(this)" />
  <script type="text/javascript">
   function callFunc(elem){
    document.getElementById("tar").checked = elem.checked;
   }
  </script>
 </body>
</html>

【讨论】:

  • 我需要在页面加载时取消选中它,即通过 然后在用户使用它之后,该函数将添加一个'checked'属性给它..
  • @bouncingHippo - 如果您希望用户与您的输入元素进行交互,请删除 disabled 属性。
  • 可点击性不是这里的问题,当我第一次创建复选框 它没有“已检查”属性。稍后,我使用 document.theForm....checked=true 似乎不起作用,因为检查页面源显示 即使在调用该函数之后仍然缺少选中的属性...
  • @bouncingHippo - 你一定做错了。有关前面所述的属性设置的清晰工作示例,请参见编辑。在做出错误假设或开发之前更好地调试您的代码可能需要很长时间。 MOREOVER,检查页面源仅显示页面的状态是什么加载时
  • 你说得对,我用你的建议解决了这个问题。谢谢,请点赞这个问题,不胜感激
【解决方案2】:

尝试将其设置为 true

document.theForm.elements['CBOX1'].checked = true; 

【讨论】:

  • 我不能先将其设置为 true,因为我们的客户希望在页面首次加载时将其设置为 check=false,并且根据传入的数据,它将 check=true....
  • 然后根据传入的数据设置值true。不确定您的问题是什么。
【解决方案3】:

试试这个,反正没测试过。

document.theForm.elements['CBOX1'].checked = true; 

【讨论】:

  • 我不能先将其设置为 true,因为我们的客户希望在页面首次加载时将其设置为 check=false,并且根据传入的数据,它将 check=true....
  • 然后将true更改为false。即document.theForm.elements['CBOX1'].checked = false;。希望这能解决你的问题,因为我不清楚你想要实现什么。
  • 换句话说 ?
猜你喜欢
  • 2013-09-09
  • 1970-01-01
  • 2013-02-23
  • 1970-01-01
  • 2012-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多