【问题标题】:Unable to change color of input type=color field using javascript无法使用javascript更改输入类型=颜色字段的颜色
【发布时间】:2020-11-16 04:28:12
【问题描述】:

我已将“颜色”类型的输入字段包装在标签标签中,以控制输入字段的样式,正如建议的解决方案之一 here 中所建议的那样。

所以我有类似的东西:

"<label class='myLabel1'><input type='color' class='myColor1' value='#ffffff'></input></label>

它按预期工作。但是,如果我尝试更改颜色,如下所示:

   $('.myColor1').val('#FF0000');

它不会改变输入字段的颜色。

【问题讨论】:

  • 对我来说工作正常。这里的确切问题是什么?
  • @SMAKSS 您是否尝试隐藏该字段?样式标签中的颜色不会改变。请参阅链接以了解确切的问题。如果输入字段中的更改是通过颜色选择器进行的,它会正确更新标签。也许我的问题措辞错误。它是未更新的标签。我有 on change 事件,但是通过 Javascript 更改颜色时不会触发它。
  • @Sunny 请提供一个最小的、可重现的示例,以便我们提供帮助。
  • 似乎工作正常! myColor1 类中有多少 form 元素?这可能是问题所在。
  • @PeterKA 答案在于我提供的链接。我完全错过了这个问题。请参阅下面的回复。

标签: javascript jquery forms colors


【解决方案1】:

试试这些方法。

1. $('.myColor1').attr('value', '#FF0000'); 
2. $('.myColor1').prop('value', '#FF0000'); 

JS:

3. var elem = document.querySelector('.myColor1'); 
   elem.setAttribute('value', '#FF0000');

代码不应该起作用,因为当使用标签来伪造输入字段时,标签的 CSS 应该通过 Javascript 而不是输入字段的颜色来更新。标签颜色更改也会更改输入字段的颜色,但反之亦然。

【讨论】:

  • 很遗憾没有帮助。
  • 试试这个 - $('.myLabel1 .myColor1')...。如果没有帮助,请提供您的 htmlcss
  • ... 并在控制台上检查参数是否传递给属性。如果传递了参数,那么问题就不同了。 console.log($('.myColor1').attr('value'));
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-28
  • 1970-01-01
  • 2021-06-15
  • 2018-02-03
  • 2021-11-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多