Gdrcd 5.2 contatore caratteri azione in chat
Gdrcd 5.2 contatore caratteri azione in chat postato il 12/06/2014 13:52:46 nel forum programmazione, open source e hosting
<script language="javascript" type="text/javascript">
function Conta()
{
document.mex_chat.conta.value = document.mex_chat.message.value.length;
var massimo = 1500;
if (document.mex_chat.message.value.length > massimo)
{
alert("Massimo " + massimo + " caratteri!");
document.mex_chat.message.value = document.mex_chat.message.value.substr(0, massimo);
document.mex_chat.conta.value = massimo;
}
}
</script>
<div class="casella_chat">
<input id="message" value="" name="message" maxlength="1500/" onkeyup="Conta()"/>
<br/><span class="casella_info">
<?php echo gdrcd_filter('out',$MESSAGE['chat']['tag']['info']['msg']); ?>
</span>
<?php if($PARAMETERS['mode']['chatsave']=='ON'){ ?>
<span class="casella_info">
<a href="javascript:void(0);" onClick="window.open('chat_save.proc.php','Log','width=1,height=1,toolbar=no');">
Salva Chat
</a>
</span>
<?php } ?>
</div>
<!-- prova contatore-->
<div class="casella_chat">
<input class="conta" type="text" readonly="" value="0" name="conta">
<br>
<span class="casella_info"> Contatore </span>
</div>
<!-- fine prova-->
<div class="casella_chat">
<input type="submit" value="<?php echo gdrcd_filter('out',$MESSAGE['interface']['forms']['submit']); ?>" />
<input type="hidden" name="op" value="new_chat_message" />
</div>
chiedo scusa ma non riesco a capire che cosa sbaglio e come mai non mi funzioni ç___ç
Pagine → 1
12/06/2014 15:05:49
Probabilmente perchè non stai accedendo correttamente agli elementi della pagina.
Questo sistema di accesso agli elementi:
document.mex_chat.conta.value
è vecchio e si presta a generare molti errori.
Per accedere a un elemento di una pagina dovresti usare metodi più affidabili, tipo:
document.getElementById('conta').value
12/06/2014 15:12:57 e modificato da staffainigma il 12/06/2014 15:14:44
quindi provo a sostituire tutti quanti semplicemente gli elementi con quel tuo nuovo e più aggiornato codice?
così:
<script language="javascript" type="text/javascript">
function Conta()
{
document.getElementById('conta').value = document.getElementById('conta').value;
var massimo = 1500;
if (document.getElementById('conta').value > massimo)
{
alert("Massimo " + massimo + " caratteri!");
document.getElementById('conta').value = document.getElementById('conta').value(0, massimo);
document.getElementById('conta').value = massimo;
}
}
</script>
12/06/2014 15:15:54 e modificato da ilgrandeinverno il 12/06/2014 15:19:09
staffainigma ha scritto:
chiedo scusa ma non riesco a capire che cosa sbaglio e come mai non mi funzioni ç___ç
Una banale limitazione del numero di caratteri direttamente sul campo del form, e un eventuale filtro di sicurezza, lato php, applicando la funzione substr(0,$limite) alla stringa di testo ricevuta?
Se proprio vuoi far apparire l'alert (imho inutile, il giocatore si accorge da solo, arrivato a 1500 caratteri, che non riesce più a scrivere nel campo e puoi ottenere lo stesso effetto di avvisarlo usando un title sul campo che lo avvisa che sono permessi max 1500 caratteri), hai provato ad associare la funzione conta() al metodo "onblur" del campo di testo, anzichè a "onkeyup", oppure direttamente all'evento 'onsubmit' del form?
12/06/2014 15:47:00
chiedo venia ma io non sono un programmatoreç___ç
12/06/2014 17:20:54
Hai fatto quasi giusto. Ma hai messo 'conta' in tutti pezzi che hai sostituito.
Invece di mettere sempre 'conta' come parametro di getElementById() dovresti mettere il nome dell'elemento che ti interessa in quel punto XD
13/06/2014 09:25:53
per il nome dell'elemento che mi interessa intendi l'id?
e devo mettere in tal caso l'id della barra dove inserisco l'azione oppure?
chiedo scusa ma non riesco proprio a capire come farlo funzionareç__ç
13/06/2014 15:51:46
Un cosa del genere
<script language="javascript" type="text/javascript">
function Conta()
{
document.getElementById('conta').value = document.getElementById('message').value.length;
var massimo = 1500;
if (document.getElementById('message').value.length > massimo)
{
alert("Massimo " + massimo + " caratteri!");
document.getElementById('message').value = document.getElementById('message').value.substr(0, massimo);
document.getElementById('conta').value = massimo;
}
}
</script>
<div class="casella_chat">
<input id="message" value="" name="message" maxlength="1500/" onkeyup="Conta()"/>
<br/><span class="casella_info">
<?php echo gdrcd_filter('out',$MESSAGE['chat']['tag']['info']['msg']); ?>
</span>
<?php if($PARAMETERS['mode']['chatsave']=='ON'){ ?>
<span class="casella_info">
<a href="javascript:void(0);" onClick="window.open('chat_save.proc.php','Log','width=1,height=1,toolbar=no');">
Salva Chat
</a>
</span>
<?php } ?>
</div>
<!-- prova contatore-->
<div class="casella_chat">
<input class="conta" id="conta" type="text" readonly="" value="0" name="conta">
<br>
<span class="casella_info"> Contatore </span>
</div>
<!-- fine prova-->
<div class="casella_chat">
<input type="submit" value="<?php echo gdrcd_filter('out',$MESSAGE['interface']['forms']['submit']); ?>" />
<input type="hidden" name="op" value="new_chat_message" />
</div>
14/06/2014 02:26:08
no, purtroppo non va neanche cosìç__ç
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
State of Survival ↗
Tiles Survive ↗
CRSED: F.O.A.D. ↗
Fallen Gods ↗
Seconda Era ↗
AlterEgo ↗