Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Nie czyści inputa, Strona bez przeładowania
Johnas
post
Post #1





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

Ostrzeżenie: (0%)
-----


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.



Skrypt odpowiedzialny za wysyłanie wiadomości:
[JAVASCRIPT] pobierz, plaintext
  1. $("#newMessage").submit(function() {
  2. var username = $("#username").val();
  3. var message = $("#message").val();
  4.  
  5. var type = $("#username").attr('type');
  6. if (type == "text") {
  7. // Zadania dla pierwszej wiadomości
  8. $("#username").prop('type', 'hidden');
  9. setUsername(username);
  10. $("#newMessageLink").show();
  11. }
  12.  
  13. $("#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>' );
  14.  
  15. // Scrolowanie na dół
  16. var elem = document.getElementById('showMessage');
  17. elem.scrollTop = elem.scrollHeight;
  18.  
  19. // Wysyłanie wiadomości
  20. var formData = "send=true&message="+message+"&to="+username; //Array
  21. $.ajax({
  22. url : "sendMessage.php",
  23. type: "POST",
  24. data : formData,
  25. success: function(data, textStatus, jqXHR)
  26. {
  27. //data - response from
  28. $("#message").removeAttr( "value" );
  29. return false;
  30. },
  31. error: function (jqXHR, textStatus, errorThrown)
  32. {
  33. return false;
  34. }
  35. });
  36. $("#message").removeAttr( "value" ); // czyścimy okienko
  37. return false;
  38. });
[JAVASCRIPT] pobierz, plaintext


--------------------
Jak coś jest dobre, to nie znaczy że nie może być to lepsze - Ideały nie istnieją ;D
Strony internetowe Świnoujście
Go to the top of the page
+Quote Post
Star
post
Post #2





Grupa: Zarejestrowani
Postów: 294
Pomógł: 34
Dołączył: 16.02.2015

Ostrzeżenie: (0%)
-----


A nie lepiej zrobić coś takiego? :
  1. $("#message").val('');
Go to the top of the page
+Quote Post
Comandeer
post
Post #3





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


Zdecydowanie lepiej, bo zgodnie ze standardem DOM atrybut [value] odzwierciedla tak naprawdę domyślną wartość pola – stąd niekoniecznie jego zmiana wpłynie na samo pole.


--------------------
Go to the top of the page
+Quote Post
Star
post
Post #4





Grupa: Zarejestrowani
Postów: 294
Pomógł: 34
Dołączył: 16.02.2015

Ostrzeżenie: (0%)
-----


Comandeer,a co myslisz o takim rozwiazaniu ->
  1. $("#messages").prop('value', ' ');
?
Działa, jednak czy jest to poprawne ?

Ten post edytował Star 26.03.2016, 20:57:12
Go to the top of the page
+Quote Post
Comandeer
post
Post #5





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


No poprawne, bo zmienia własność, nie atrybut. Niemniej po co, skoro $.fn.val robi to samo? wink.gif


--------------------
Go to the top of the page
+Quote Post
Johnas
post
Post #6





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

Ostrzeżenie: (0%)
-----


Jednak to nie pomaga... sam nie mam pomysłu dlaczego, tak jakby nie widziało elementu, albo nie wiem co...

  1. <div style="padding-right:30px;">
  2. <input type="text" name="to" style="width:100%;" id="message" class="form-control input-txt" placeholder="Napisz wiadomość" autocomplete="off">
  3. </div>



to jest kod od wpisywania wiadomości, który jest pobierany i wrzucany za pomocą skryptu... no i w <script type="text/javascript"></script>

[JAVASCRIPT] pobierz, plaintext
  1. $("#newMessage").submit(function() {
  2. var username = $("#username").val();
  3. var message = $("#message").val();
  4.  
  5. var type = $("#username").attr('type');
  6. if (type == "text") {
  7. // Zadania dla pierwszej wiadomości
  8. $("#username").prop('type', 'hidden');
  9. setUsername(username);
  10. $("#newMessageLink").show();
  11. }
  12.  
  13. $("#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>' );
  14.  
  15. // Scrolowanie na dół
  16. var elem = document.getElementById('showMessage');
  17. elem.scrollTop = elem.scrollHeight;
  18.  
  19. // Wysyłanie wiadomości
  20. var formData = "send=true&message="+message+"&to="+username; //Array
  21. $.ajax({
  22. url : "sendMessage.php",
  23. type: "POST",
  24. data : formData,
  25. success: function(data, textStatus, jqXHR)
  26. {
  27. //data - response from
  28. $("#message").val('');
  29. return false;
  30. },
  31. error: function (jqXHR, textStatus, errorThrown)
  32. {
  33. return false;
  34. }
  35. });
  36. $("#message").val(''); // czyścimy okienko
  37. return false;
  38. });
[JAVASCRIPT] pobierz, plaintext


i ten kod działa jeżeli wejdzie się na tą stronę z odświeżeniem, ale jeżeli załaduje się stronę przez skrypt to już nie chce czyścić okienka...

A nie, jednak działa... plik mi się nie wysłał przez ftp... dziękuje smile.gif


--------------------
Jak coś jest dobre, to nie znaczy że nie może być to lepsze - Ideały nie istnieją ;D
Strony internetowe Świnoujście
Go to the top of the page
+Quote Post
Star
post
Post #7





Grupa: Zarejestrowani
Postów: 294
Pomógł: 34
Dołączył: 16.02.2015

Ostrzeżenie: (0%)
-----


Cytat(Comandeer @ 26.03.2016, 21:01:48 ) *
No poprawne, bo zmienia własność, nie atrybut. Niemniej po co, skoro $.fn.val robi to samo? wink.gif


jasne, pytalem z ciekawosci :-)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 07:30