В моем теге body у меня есть два типа ввода (текст и цвет). Это работает так,
- Если вы укажете шестнадцатеричное значение цвета в inputText, inputColor
автоматически изменится на этот цвет.
- Если вы выберете цвет с помощью colorPicker, inputText будет
автоматически изменить значение colorHex, которое вы выбрали.
Ниже работает код
<body>
<input type="text" id="txtColor">
<input type="color" id="colColor" >
<script>
document.getElementById("txtColor").onblur = function() {myFunction1()};
document.getElementById("colColor").onchange = function() {myFunction2()};
function myFunction1() {
//alert("Input field lost focus.");
var txtColor = document.getElementById("txtColor").value;
document.getElementById("txtColor").nextElementSibling.value = txtColor;
// document.getElementById("colColor").value = txtColor;
}
function myFunction2() {
//alert("Input field lost focus.");
var colColor = document.getElementById("colColor").value;
document.getElementById("colColor").previousElementSibling.value = colColor;
//document.getElementById("txtColor").value = colColor;
}
</script>
</body>
Что я пытаюсь сделать, так это то, что у меня есть таблица с несколькими строками из вышеуказанной пары (inputText & inputColor). Он должен функционировать аналогично вышеуказанному. Я пытаюсь с getElementsByClassName, имеющим общее имя класса для inputText и inputColor, чтобы он обновлял родного брата с помощью значения hexColor или цвета.
Это мой текущий код, он не работает. В настоящее время появляется ошибка "Uncaught TypeError: txtColorClass.addEventListener не является функцией"
<body>
<table>
<tr>
<td>
<input type="text" id="txtColor0" class="txtColorClass">
<input type="color" id="colColor0" >
</td>
</tr>
<tr>
<td>
<input type="text" id="txtColor1" class="txtColorClass">
<input type="color" id="colColor1" >
</td>
</tr>
<tr>
<td>
<input type="text" id="txtColor2" class="txtColorClass">
<input type="color" id="colColor2" >
</td>
</tr>
</table>
<script>
var txtColorClass = document.getElementsByClassName("txtColorClass");
txtColorClass.addEventListener("blur", function( event ) {
//event.target.style.background = "pink";
var txtColor = event.target.value;
event.target.nextElementSibling.value = txtColor;
}, true);
//document.getElementById("txtColor").onblur = function() {myFunction1()};
document.getElementById("colColor").onchange = function() {myFunction2()};
function myFunction1() {
//alert("Input field lost focus.");
var txtColor = document.getElementById("txtColor").value;
document.getElementById("txtColor").nextElementSibling.value = txtColor;
// document.getElementById("colColor").value = txtColor;
}
function myFunction2() {
//alert("Input field lost focus.");
var colColor = document.getElementById("colColor").value;
document.getElementById("colColor").previousElementSibling.value = colColor;
//document.getElementById("txtColor").value = colColor;
}
</script>
</body>