#html #jquery
#HTML #jquery
Вопрос:
Я пытаюсь создать интерактивную форму с использованием HTML и jQuery. Идея заключается в том, чтобы пользователь вводил свое имя, адрес электронной почты и комментарий. Затем ввод от пользователя будет добавлен к абзацу HTML и отображен в форме. Я смог создать форму, но у меня возникли проблемы с отображением ввода пользователя. Любая помощь приветствуется!
Вот код, который у меня есть:
$("form").submit(function(event) {
var user_name = $('#form').find('input[name="name"]').val();
var user_email = $('#email').val();
var user_comment = $('#comment').val();
$("p.feedback").append("user_name");
});
h1 {
text-align: center;
}
.aligncenter {
text-align: center;
}
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<h1 style="border: 2px solid black;
background-color: white;" " > </h1>
<div style = "border: 2px solid black; background-color: white; padding: 25px 50px; "">
<h2>Biography</h2>
<p> </p>
<h2>Education</h2>
<p> </p>
<h2>Research Interests</h2>
<p> </p>
<h2>Contact Information</h2>
<p> </p>
</div>
<form>
<label for="name">Name:</label><br>
<input type="text" id="name" name="name"><br>
<label for="email">Email:</label><br>
<input type="text" id="email" name="email"><br>
<label for="comment">Comment:</label><br>
<input type="text" id="comment" name="comment"><br>
<input type="submit" value="Submit">
</form>
<p class="feedback"></p>
Комментарии:
1. Вы никогда не препятствуете отправке, поэтому страница выгружается. Кроме того, я настоятельно не рекомендую изучать jQuery, если вы еще не полностью освоились с собственным DOM API.
2. Как вы хотите это сделать? Если вы просто хотите добавить на страницу в <p class=»feedback»></p>, и вам не нужно сохранять его на сервере БД, то вы можете просто использовать JS или jQuery для этого. В противном случае вам нужно будет отправить форму через AJAX для сохранения на сервере и проверки данных, а после успешного ответа добавить данные на страницу. В любом случае, вы все равно собираетесь использовать JS / Jquery для редактирования DOM, например $(«.feedback»).html(‘Some Content Here») , добавьте его к этому элементу, если хотите добавить несколько комментариев.
3. Вы не хотите, чтобы страница обновлялась. Вот простой jsfiddle, с которым вы можете поиграть, скопировать и вставить свой код. Используйте консоль. регистрируйтесь, чтобы обнаружить любые ошибки в вашем коде jQuery или Javascript. jsfiddle.net/AvCCb Вот немного более сложный пример. jsfiddle.net/darshanags/6vxMs/6
Ответ №1:
Попробуйте это:
$('#form').on('submit', function(e){
e.preventDefault(); // Prevent the form to send
$('#feedback')
.append('<div>' $('#name').val() '</div>')
.append('<div>' $('#email').val() '</div>')
.append('<div>' $('#comment').val() '</div>');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h1 style="border: 2px solid black; background-color: white;"></h1>
<div style="border: 2px solid black; background-color: white; padding: 25px 50px;">
<h2>Biography</h2>
<p></p>
<h2>Education</h2>
<p></p>
<h2>Research Interests</h2>
<p></p>
<h2>Contact Information</h2>
<p></p>
</div>
<form id="form">
<label for="name">Name:</label><br>
<input type="text" id="name"><br>
<label for="email">Email:</label><br>
<input type="text" id="email"><br>
<label for="comment">Comment:</label><br>
<input type="text" id="comment"><br>
<input type="submit" value="Submit">
</form>
<div id="feedback"></div>
Ответ №2:
Вы используете тип ввода как Submit . Которая используется вместе с действием формы. Которая будет перенаправлена или направлена на. Итак, ваш код должен быть таким, чтобы при загрузке страницы код должен выполняться или использовать ввод в качестве кнопки.
Вот скрипка, которая записывает жестко закодированное имя пользователя. Обновите код, чтобы получить значение. Пройдите через API jQuery.
Ответ №3:
И это решение от меня. Оберните свой код в готовое событие:
$(document).ready(function () {
...
});
Я также использовал <br>
тег для переноса значения в новую строку.
$(document).ready(function () {
$("form").submit(function(event) {
event.preventDefault();
var user_name = $('#name').val();
var user_email = $('#email').val();
var user_comment = $('#comment').val();
$("p.feedback").append("user_name: " user_name "<br>email: " user_email "<br>comment: " user_comment);
});
});
h1 {
text-align: center;
}
.aligncenter {
text-align: center;
}
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<h1 style="border: 2px solid black;
background-color: white;" " > </h1>
<div style = "border: 2px solid black; background-color: white; padding: 25px 50px; "">
<h2>Biography</h2>
<p> </p>
<h2>Education</h2>
<p> </p>
<h2>Research Interests</h2>
<p> </p>
<h2>Contact Information</h2>
<p> </p>
<form>
<label for="name">Name:</label><br>
<input type="text" id="name" name="name"><br>
<label for="email">Email:</label><br>
<input type="text" id="email" name="email"><br>
<label for="comment">Comment:</label><br>
<input type="text" id="comment" name="comment"><br>
<input type="submit" value="Submit">
</form>
<p class="feedback"></p>