<div class="comentPub" id="comentPub_<?php echo $pub_id;?>">
<div id="comentPub_content">
<img onclick="close_coment_box(<?php echo $pub_id; ?>)" src="imagens/x.png" style="width: 10px; height: 10px; float: right; margin-right: 10px;"/><br/>
<a href="perfil.php">
<img src="<?php echo $imageDirectory;?>" style="width: 25px; height: 25px;">
</a>
<textarea name="usercoment" class="comentBox" id="comentBox_<?php echo $pub_id;?>" placeholder="Escreve um comentário..." onkeypress="keypressed(this.id, <?php echo $userID;?>, <?php echo $pub_id;?>)"></textarea><br/
//ЭТО ТЕКСТАРЯ, ЧТО Я ХОЧУ ПОЛУЧИТЬ ЗНАЧЕНИЕ И ПРОВЕРИТЬ КЛЮЧУЮ ФУНКЦИЮ
<li style="background: #ddd; font-size: 0; height: 1px; line-height: 0; width: 350px; float: left;"></li>
<?php
$comentarios = "SELECT * FROM comentPub WHERE pubID = '$pub_id'";
$comentarios_query = mysql_query($comentarios, $liga);
while ($row4 = mysql_fetch_array($comentarios_query)){
$userComentID = $row4['userID'];
$coment = $row4['coment'];
$comentID = $row4['comentID'];
$getUserComentData = "SELECT * FROM perfis WHERE id='$userComentID'";
$getUserComentData_query = mysql_query($getUserComentData, $liga);
while ($row5 = mysql_fetch_array($getUserComentData_query)){
$userComentImage = $row5['imagem'];
$nome = $row5['nome'].' '.$row5['apelidos'];
}
}
?>
</div>
</div>
^ ЭТО МОЯ СТРАНИЦА HTML, СЕЙЧАС MY JS FUNCTION
function keypressed(textareaID, comentUserID, pubID){
var textareaID = "#" + textareaID;
$(textareaID).keydown(function(e){
if(e.shiftKey && e.keyCode == 13){
var txt = $(textareaID);
txt.val(txt.val());
} else if (e.keyCode == 13) {
e.preventDefault();
var userComent = $(textareaID).val();
$.post("comentar_pub.php", {coment: userComent, user: comentUserID, pub: pubID});
$(textareaID).attr("value", "");
}
});
}
ТЕПЕРЬ, ЕСЛИ ВЫ ВЫПОЛНИТЕ ЭТО, ЭТО ВЫПОЛНИТЬ НЕСКОЛЬКО ВРЕМЕНИ "$.post(" comentar_pub.php ", {coment: userComent, user: comentUserID, pub: pubID}); И ВСТАВИТЬ МНОЖЕСТВЕННЫЕ ЛИНИИ НА БД. ЕСЛИ ВЫ ПОПРОБУЕТЕ ИЗМЕНИТЬ КОД ВНУТРЕННЕГО "e.keyCode == 13" TO "alert (" 1 "); alert (" 2 ");", ВЫ МОЖЕТЕ ВИДЕТЬ ЛУЧШЕ ЭФФЕКТ. ПОЖАЛУЙСТА ПОМОГИ
Его один адский код для отслеживания... Во всяком случае, ваша проблема заключается в том, что вы onkeypress
код на onkeypress
в textarea
+ в функции keypressed()
вы добавляете еще один прослушиватель событий $(textareaID).keydown()
в тот же элемент... вы можете видеть, где это происходит.
Здесь следует отметить, что jquery keydown
добавляет в прослушиватели событий и не заменяет существующий keydown. Таким образом, каждый раз, когда onkeypress
обжигают добавить еще $(textareaID).keydown()
действие события (анонимная функция, что вы передаете к событию) в $(textareaID)
элемента.
На каждом нажатии клавиши вы добавляете прослушиватель событий, когда срабатывает keydown, сообщение выполняется с помощью X раз, когда onkeypress
был запущен в textarea
.
Удалите добавление $(textareaID).keydown()
и запустите его внутри, и вы должны быть установлены... если я правильно понял, как это должно работать.
EDIT: значит, код должен быть
<textarea name="usercoment" class="comentBox" id="comentBox_<?php echo $pub_id;?>" placeholder="Escreve um comentário..." onkeypress="keypressed(event, this, <?php echo $userID;?>, <?php echo $pub_id;?>)"></textarea>
и JS
function keypressed(e, textareaDOM, comentUserID, pubID){
if (!e) var e = window.event;
var txt = $(textareaDOM);
if(e.shiftKey && e.keyCode == 13){
txt.val(txt.val());
} else if (e.keyCode == 13) {
e.preventDefault();
var userComent = txt.val();
$.post("comentar_pub.php", {coment: userComent, user: comentUserID, pub: pubID});
txt.attr("value", "");
}
}
ЗАМЕТКА! - Поскольку keypressed
функция срабатывает через обычные события и не JQuery событий, то я не помню, если e.shiftKey
на самом деле работает, если я правильно помню, вы все равно должны слушать смены отдельно. Но я оставлю это вам!
.keypress()
вместо.keydown()
?