#javascript #html
#javascript #HTML
Вопрос:
Я хотел бы вставить элемент, взятый из класса «iti__selected-dial-code», в качестве значения в тег. Я сделал это для
тег, но у меня проблема с тегом.
Мой входной тег: <input type="tel" id="phone" class="tell" name="telephone" value="">
И js-код:
var input = document.querySelector("#phone");
var iti = window.intlTelInput(input, {
separateDialCode: true,
utilsScript: "https://cdn.jsdelivr.net/npm/intl-tel-input@17.0.8/build/js/utils.js",
});
window.iti = iti;
var code = document.getElementsByClassName("iti__selected-dial-code").item(0).innerHTML;
//It works for <p> tag.
var prefix = document.getElementById("prefix");
prefix.innerText = code;
//I would like it to work as above, so that the prefix moves to the input instead of a <p>.
var phoneNumber = document.getElementById("phone");
phoneNumber.innerText = code;
Чтобы упростить понимание проблемы, я создал codepen: https://codepen.io/hubu999/pen/qBaOrjL
Ответ №1:
var elem = document.getElementsByClassName("iti__selected-dial-code").item(0);
var phoneNumber = document.getElementById("phone");
phoneNumber.value = elem.innerHTML;
observer = new MutationObserver(function(mutationsList, observer) {
console.log(mutationsList);
phoneNumber.value = elem.innerHTML;
});
// call `observe` on that MutationObserver instance,
// passing it the element to observe, and the options object
observer.observe(elem, {characterData: true, childList: true, attributes: false});
Пожалуйста, посмотрите это: MutationObserver.observe()
Комментарии:
1. Похоже, что значение вводится, но сразу же перезаписывается. У вас есть какие-либо идеи, почему это происходит?
2. Я не могу точно сказать, вы должны опубликовать свой полный код
3. @Hubu999 смотрите мое новое редактирование, я нашел скрытую черную магию
4. Спасибо, но я использовал ваш код в своем (см. codepen), и в поле ввода у меня есть «[object HTMLDivElement]» вместо » 1″.
5. Я вставил ваш новый код в свой codepen, и теперь у меня ничего нет в поле ввода: (