[英]onChange event is not working in color type input
我搜索了很多并在 Stack Overflow 上找到了答案,但都是徒劳的,没有什么对我有用。 我想在input
字段中更改颜色时获取颜色值。
这是我的代码,请检查为什么它不起作用。
<input type="color" id="bgcolor" value="#ffffff" onchange="test()" />
这是 JavaScript 代码:
function test(){
console.log('working.....');
}
此功能不起作用,如果您将onChange
替换为onclick
它可以正常工作,但为什么不能用于onChange
?
我在 Windows 上的 Chrome 和 Firefox 中得到相同的行为,它只发生在纯黑色、纯白色或非常接近其中任何一种颜色的任何颜色上。
如果您查看颜色选择器,您会注意到当您在主方块中移动光标时 rgb 值不会改变(如果您使用向右的垂直滑块,它们会改变,但这不是一般用户会倾向于的)去做)。
使用相同颜色选择器的其他应用程序也会出现相同的行为,例如 MSpaint 或 Tkinter 的tkColorChooser.askcolor()
。 我认为这是 Window 的默认颜色选择器,因为“颜色”有英式英语拼写“颜色”,这是我的默认语言选择。
要解决此问题,只需使用任何不是#ffffff
或#000000
(或接近)的颜色作为起始颜色。
<label for="doesntWork1">doesn't work</label> <input type="color" id="doesntWork1" value="#ffffff" onchange="alert(this.value);" /> <p> <label for="doesntWork2">doesn't work</label> <input type="color" id="doesntWork2" value="#000000" onchange="alert(this.value);" /> <p> <label for="works1">works</label> <input type="color" id="works1" value="#fdffff" onchange="alert(this.value);" /> <p> <label for="works2">works</label> <input type="color" id="works2" value="#000002" onchange="alert(this.value);" />
有些人在不同浏览器中遇到的行为不一致的问题是因为您使用了“onchange”事件(jQuery 中的“change”),这不是颜色输入的适当事件(这就是为什么它有时有效,有时无效) 't,尤其是在 Mac OS X 上)。
您应该使用“oninput”(或使用 jQuery 时的“input”),它适用于所有浏览器和平台。
$('#bgcolor').on('input',
function() {
console.log($(this).val());
}
);
像这样访问值。
function test(t) { console.log(t.value); }
<input type="color" id="bgcolor" value="#ffffff" onchange="test(this)" onkeyup="test(this)" />
希望这对你有帮助。
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<input type="color" id="bgcolor" value="#ffffff" />
</body>
<script>
$(document).on("change" , "#bgcolor" , function(){
alert($(this).val());
});
</script>
</html>
$(document).on("change" , "#bgcolor" , function(){ alert($(this).val()); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="color" id="bgcolor" value="#ffffff" />
它对我有用,请在下面查看
function hello() { alert("hi"); }
<input type="color" value="#ff0000" onchange="hello();">
尝试使用 JavaScript 和 JQuery 执行以下代码段。
//Javascript function function test(t) { console.log(t.value); } //Jquery function $('#bgcolor').change(function(){ console.log($(this).val()); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="color" id="bgcolor" value="#ffffff" onchange="test(this)" />
"Instead of onchange on input type color use the input event in JavaScript.
Here is the working code."
<input type="color" id="colorPicker" value="#333" style="width:100%;height:210px; border:none;background:none">
<script>
colorpicker = document.getElementById('colorPicker');
colorpicker.addEventListener('input', ()=>{
console.log('my color is: ',colorpicker.value);
});
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.