Witam, cały czas jestem w trakcie rozwijania swojego własnego skryptu forum... Aktualnie natknąłem się na problem tego typu że podczas pisania wiadomości których działanie jest podobne do działania tego na facebooku (podczas wysyłania strona się nie odświeża) i z wysyłaniem wiadomości wszystko przebiega prawidłowo. Problem natomiast pojawia się z inputem w który wpisuje się wiadomości... nie wiem dlaczego, ale nie chce się on odświeżyć, tak jakby przez to że strona została wyświetlona javascriptem sprawiało że nie mogę kontrolować tego elementu... Czy da się to jakoś obejść ? Wiem że na pewno jest na to jakiś sposób.
(IMG:
https://d3higte790sj35.cloudfront.net/images/ns/pq/765735dedb2e54c5792aacca365efd41.jpeg)
Skrypt odpowiedzialny za wysyłanie wiadomości:
$("#newMessage").submit(function() {
var username = $("#username").val();
var message = $("#message").val();
var type = $("#username").attr('type');
if (type == "text") {
// Zadania dla pierwszej wiadomości
$("#username").prop('type', 'hidden');
setUsername(username);
$("#newMessageLink").show();
}
$("#showMessage").append( '<div style="margin-top:10px;width:100%;min-height:45px;"><img src="{if $profile.avatarBy eq 0}{if $profile.avatar|count_characters}{$config->domain}/{$profile.avatar}{else}{$config->domain}/images/avatar.png{/if}{else}{$profile.avatar}{/if}" style="width:45px; height:45px; float:left;"><a href="profile/{changeSpecialCharsURL($user->username)}" style="float:left; margin-left:5px;">{$user->username}</a><br><span style="float:left;margin-left:5px;width: 92%;">'+message+'</span></div>' );
// Scrolowanie na dół
var elem = document.getElementById('showMessage');
elem.scrollTop = elem.scrollHeight;
// Wysyłanie wiadomości
var formData = "send=true&message="+message+"&to="+username; //Array
$.ajax({
url : "sendMessage.php",
type: "POST",
data : formData,
success: function(data, textStatus, jqXHR)
{
//data - response from
$("#message").removeAttr( "value" );
return false;
},
error: function (jqXHR, textStatus, errorThrown)
{
return false;
}
});
$("#message").removeAttr( "value" ); // czyścimy okienko
return false;
});