У меня есть простая форма комментария, которая состоит из текстового поля для имени и текстового поля для комментария и обычной кнопки для отправки. Кнопка отправки сбрасывает текстовое поле в jquery ниже. Он отлично работает, за исключением одной раздражающей проблемы, если я что-то пишу и нажимаю ввод, он удаляет текст из текстового поля, но создает новую строку в текстовом поле. Как это исправить, так что текстовое поле действительно пустое при нажатии enter?
Это также на codepen: http://codepen.io/erikL/pen/Leymj
HTML
<p class="inline-block name">Name</p> 
<input type="text" placeholder="Your name" id="userName" maxlength="30">
<textarea class="comment" id="userComment" placeholder="Enter your comment here" maxLength="300"></textarea>
<p><em>max 300 characters</em></p>
<input type="button" class="comment" value="Submit" onclick="userComment()" id="button" />
<div id="comments"></div>
Javascript для отправки комментария
function userComment() {
var textd = document.getElementById("userComment");
var named = document.getElementById("userName");
var textdVal = textd.value;
var namedVal = named.value;
if (namedVal.length < 1) {
alert('Please enter you name.');
}
else {
if(textdVal.length < 3) {
textdVal = 'No comment.';
}
var namedParagraph = document.createElement('p');
var textdParagraph = document.createElement('p');
namedParagraph.textContent = namedVal + (' - ') + date;
textdParagraph.textContent = textdVal;
namedParagraph.className = 'commentName';
textdParagraph.className = 'commentText';
document.getElementById("comments").appendChild(namedParagraph);
document.getElementById("comments").appendChild(textdParagraph);
document.getElementById("userName").value=""; //this is where it resets the name
document.getElementById("userComment").value=""; //this is where it resets the comment
}
};
JQuery для сброса формы
$(document).ready(function(){
$('#userComment').keypress(function(e){
if(e.keyCode==13)
$('#button').click();
});
});
Я извиняюсь, если вопрос неясен или отсутствует информация. Заранее спасибо!
Добавьте e.preventDefault()
к вашему обработчику keypress
.
это решение... e.preventDefault();
$(document).ready(function(){
$('#userComment').keypress(function(e){
e.preventDefault();
if(e.keyCode==13)
$('#button').click();
});
});