【问题标题】:Change color if checkbox is checked - onchange event如果选中复选框,则更改颜色 - onchange 事件
【发布时间】:2023-03-23 01:05:02
【问题描述】:

如果选中复选框,我正在尝试更改 div 的背景颜色。

它适用于循环外的 div,但不适用于循环内的 div。所有变量看起来都很好,所以我认为是语法错误。

谢谢!

<input type="checkbox" name="check0" value='1' <?php echo ((${executed_mod0}=="1")? "checked" : ''); ?> onchange='this.nextSibling.style.backgroundColor = this.checked ? "#6EDBFF" : "white";'><input type="text" name="procedure0" value="<?php echo $repair_mod0;?>">

<?php   
$i=1;
while($i<$nrpm)
{
echo '<br><input type="checkbox" name="check'.$i.'" value="1"'. ((${executed_mod.$i}=="1")? "checked":"").' onchange="this.nextSibling.style.backgroundColor = this.checked ? \"#6EDBFF\" : \"white\";"><input type="text" name="procedure'.$i.'" value="'.${repair_mod.$i}.'">';
$i++;
};
?>

【问题讨论】:

标签: javascript


【解决方案1】:

也许this 可以让您朝着正确的方向前进。在获取设置背景颜色的文本框时,我又添加了一个.nextSibling

HTML

<input type="checkbox" name="check0" value='1' onchange='setColor(this)' />
<input type="text" name="procedure0" value="1" />

<input type="checkbox" name="check1" value='2' onchange='setColor(this)' />
<input type="text" name="procedure1" value="2" />

<input type="checkbox" name="check2" value='3' onchange='setColor(this)' />
<input type="text" name="procedure2" value="3" />

JavaScript

function setColor(ele){
    ele.nextSibling.nextSibling.style.backgroundColor = ele.checked ? "#6EDBFF" : "white";   
}

【讨论】:

  • @ Arg0n 谢谢!它不适用于 nextSibling.nextSibling 但它正在使用 php 中的功能。我只是在 Javascipt 中摸索表面,我不知道你不能在 php 中使用 javascipt……或者你可以?
  • 我对 PHP 不是很熟悉,但我想如果生成的 HTML/JS 看起来没问题,它应该可以工作。
  • @chioiu daniel 顺便说一句,您可能想在 Chrome 中测试您的代码,因为我必须添加一个 nextSibling 才能使其正常工作。如果它不起作用,您可能需要重新构建 HTML 并更改文本框的选择器。
猜你喜欢
  • 2017-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-03
  • 1970-01-01
  • 1970-01-01
  • 2020-09-21
相关资源
最近更新 更多