Отправляется [object HTMLTextAreaElement] вместо переменной
const chatid = 'айди (вырезан)';
const token = 'токен (вырезан)';
const btn = document.getElementById('btn');
const pre = document.getElementById('console');
var name = document.getElementById('user-name');
const text = "Name:" + name;
btn.onclick = function (){
$.ajax({
type: 'POST',
url: `https://api.telegram.org/bot${token}/sendMessage?chat_id=${chatid}`,
data: 'parse_mode=HTML&text=' + encodeURIComponent(text),
})
.done((data) => pre.innerHTML = JSON.stringify(data, null, 2))
.fail((err) => console.error('error', err));
}
<div class="application"><form>
<textarea name="user_name" id="user-name" class="user-name" placeholder="Your name" value="user-name" required></textarea>
<textarea name="user_contact" id="user-contact" class="user-contact" placeholder="Your email address" required></textarea>
<textarea name="user_message" id="message" class="message" placeholder="Message"></textarea>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="btn" class="send">to send</button></form>
</div>
Ответы (2 шт):
Автор решения: Iurii
→ Ссылка
В переменную "name" вытащите из объекта value.
var name = document.getElementById('user-name').value;
Вы уверены, что для имени и емайла нужно использовать textarea? Может взять input?
Автор решения: Aleksandr Belous
→ Ссылка
Дата отправляется некорректно, потому что переменная "name" содержит сам html элемент, а не введенный в него текст. Вам нужно обратиться к полю value этого объекта. В js - html узлы это объекты.
var name = document.getElementById('user-name').value;
Далее в переменной "text" вы будете складывать корректно строку + строку и данные будут верны.