Visualizzazione risultati 1 fino 11 di 11

Discussione: [javascript] disabilitare tasto submit dopo invio

  1. #1
    Guest

    Predefinito [javascript] disabilitare tasto submit dopo invio

    Ciao,
    come da titolo devo disabilitare il tasto "submit" dopo che la pagina è stata inviata. Questo è il form:

    Codice HTML:
    <form enctype="multipart/form-data" action="index.php" method="post" name="file_upload" onsubmit="return checksubmit()">
    <input name="file" type="file" class="input_txt" id="file">
    <input type="submit" value="carica" name="submit"  id="file_submit">
    </form>
    e questa la function js (bool) checksubmit():
    Codice:
    function checksubmit()
    {
    	if(document.getElementById('file').value!="")
    	{
    		document.getElementById('file_submit').value="attendi";
    		document.getElementById('file_submit').disabled=true;
    		return true;
    	}
    	else
    	{
    		alert("Devi specificare un file!");
    		return false
    	}
    }
    e la pagina index.php controlla il submit così:
    Codice PHP:
    if(isset($_POST['submit'])) { ...
    Se lascio la riga che disabilita il bottone, la pagina si ricarica come se non avessi fatto submit. altrimenti funziona. Idee?
    Ultima modifica di dailywars : 26-09-2006 alle ore 13.45.05

  2. #2
    Guest

    Predefinito

    il tasto potresti disabilitarlo da php invece che da javascript stampando nella pagina
    <input type="submit" value="carica" name="submit" id="file_submit">
    se la condizione isset($_POST['submit']) è falsa, altrimenti stampi
    <input type="submit" value="carica" name="submit" id="file_submit" disabled="true">

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da SoulHome
    il tasto potresti disabilitarlo da php invece che da javascript
    no, il fatto è che voglio impedire (almeno teoricamente) doppi click etc. Il caricamento può durare un po di tempo, e nella pagina successiva (dopo l'upload) il form non c'è più, quindi inutile riscrivere il submit disabilitato. Mi serve proprio una cosa client-side.

  4. #4
    Guest

    Predefinito

    ti chiedo scusa...avevo capito male...comuqnue nel codice che hai postato non vedo errori (apparte ovviamente quel 'tr ue' staccato dovuto al forum) anzi, l'ho provato sia con ie che con ff e funge alla perfezione...

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da SoulHome
    (apparte ovviamente quel 'tr ue' staccato dovuto al forum)
    vabbè :'D

    comunque il caso "campo vuoto, alert, false" funziona correttamente. Non vorrei che disabilitando "submit" non lo invii allo script...

  6. #6
    Guest

    Predefinito

    stai tranquillo che funzioan tutto:D

    ps
    comquneu bastava provalro per accorgertene...

  7. #7
    Guest

    Predefinito

    il fatto è che non va :'D

    >Se lascio la riga che disabilita il bottone, la pagina si ricarica come se non avessi fatto >submit. altrimenti funziona. Idee?

  8. #8
    Guest

    Predefinito

    l'unica idea che mi viene è che il codice che usi è diverso da quello che hai postato...perchè ti ripeto che io ho provato il tuo codice e funziona(e del resto non avrebbe motivo per non funzioanre)...

  9. #9
    Guest

    Predefinito

    :'D
    hai provato a passare la cosa ad una pagina php? tipo "if isset echo ok else echo no"? perchè il disable in se funziona, è l'azione post che non continua :D

    *****

    Esempio

    Codice HTML:
    <script type="text/javascript">
    function checksubmit()
    {
    	if(document.getElementById('file').value!="")
    	{
    		document.getElementById('file_submit').value="attendi";
    		document.getElementById('file_submit').disabled=true;
    		return true;
    	}
    	else
    	{
    		alert("Devi specificare un file!");
    		return false
    	}
    }
    </script>
    
    
    <form enctype="multipart/form-data" action="index.php" method="post" name="file_upload" onsubmit="return checksubmit()"> <input name="file" type="file" class="input_txt" id="file"> <input type="submit" value="carica" name="submit" id="file_submit"> </form>
    
    <?php
    if(isset($_POST['submit']))
    echo("ok");
    ?>
    http://dailywars.altervista.org/prova/index.php

    se tolgo lo script, dopo il caricamento mi da "ok". Con lo script, no.

    [DS] Non inviare messaggi consecutivi, usa la funzione EDIT del forum...
    Ultima modifica di dementialsite : 26-09-2006 alle ore 16.44.46

  10. #10
    Guest

    Predefinito

    l'azione post in realtà continua...solo che la variabile $_POST['submit'] non vinene valorizzata, per il semplice motivo che al momento del submit quell'input risulta disabilitato, ciò non tolgie che il fiel viene inviato con successo e che tu puoi usare direttamente quello per il controllo lato server...

  11. #11
    Guest

    Predefinito

    Uhm, non mi risulta di aver postato 2 volte. Comunque.
    Dunque mi dici che la variabile viene valorizzata dopo, e se l'input è disabled questo non viene inviato? Ok, allora mi rigiro il controllo su un altro campo ;)
    Grazie e ciao!!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •