как отправить комментарий с помощью javascript?

#javascript #html

#javascript #HTML

Вопрос:

У меня есть некоторый код, как показано ниже, проверка формы для поля комментариев на моем веб-сайте, я уже связал его с проверкой javascript, где код уведомляет их, когда они вводят неправильную структуру электронной почты или вводят поле для комментариев более 140 символов, и не вставляли имя, которое было похоже на регулярное выражение, и я быхотелось бы сделать другой javascript внутренним для отправки комментария, чтобы после того, как пользователь напишет комментарий, он отображался на странице, как показано ниже. Но у меня возникла небольшая проблема, когда он не смог отобразить мой комментарий. Пожалуйста, если вы читаете этот вопрос, скажите мне, где я сделал это неправильно. Большое вам спасибо

 <script>
                    var comment = [];

                    var name= document.getElementById("nama");

                    var email= document.getElementById("email");

                    var message= document.getElementById("komen");

                    var messageBox = document.getElementById("display");

                    function insert(){
                        comment.push("Nama :"   name.value);
                        comment.push("Email : "   email.value);

                        comment.push("Message : "   message.value);

                        clearAndShow();

                    }
                     function clearAndShow (){

                        name.value = "";

                        email.value = "";

                        message.value = "";

                        messageBox.innerHTML = "";

                        messageBox.innerHTML  = " "   comment.join("<br/> ")   "<br/>";

                     }</script>

                <section>
                    <form name="RegForm" action="" onsubmit="return validation()" method="post">  

                        Nama Anda :</br><input type=text name="Name" id="nama" size="35" placeholder="Nama"><br /><br> 
                        Email :</br><input type=text name="EMail" id="email" size="35" placeholder="E-mail"><br /><br> 
                        Komentar :</br><textarea rows="12" name="Comment" id="komen" cols="100" wrap="virtual" placeholder="Pesan"></textarea><br/><br>

                            <input type="submit" onclick="insert()" value="send" />
                            <input type="reset" value="Reset" name="Reset">
                    </form><br />
  

Комментарии:

1. У вас нет #display элемента, поэтому messageBox.innerHTML = будет выдана ошибка.

2. Я думаю, вы хотите использовать at FormData , а не получать каждое поле по идентификатору.

Ответ №1:

Вам не хватает вашего #display . Добавьте, что все должно быть в порядке:

 let comment = [];
let name = document.getElementById("nama");
let email = document.getElementById("email");
let message = document.getElementById("komen");
let messageBox = document.getElementById("display");

insert = () => {
  // You can push these all at once
  comment.push(
    `Nama :${name.value}`,
    `Email : ${email.value}`,
    `Message : ${message.value}`);
  clearAndShow();
}

clearAndShow = () => {
  name.value = "";
  email.value = "";
  message.value = "";
  messageBox.innerHTML = "";
  messageBox.innerHTML  = " "   comment.join("<br/>")   "<br/>";
}
// remove this
document.querySelector('form[name=RegForm]').onsubmit = e => {
  e.preventDefault();
}  
 <section>
  <form name="RegForm" action="" method="post">
    Nama Anda :</br>
    <input type=text name="Name" id="nama" size="35" placeholder="Nama">
    <br /><br> Email :</br>
    <input type=text name="EMail" id="email" size="35" placeholder="E-mail">
    <br /><br> Komentar :</br>
    <textarea rows="12" name="Comment" id="komen" cols="100" wrap="virtual" placeholder="Pesan"></textarea><br/><br>
    <input type="submit" onclick="insert()" value="send" />
    <input type="reset" value="Reset" name="Reset">
  </form>
</section>
<div id='display'></div>