Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [javascript] definire maxlength tramite function

    Salve a tutti, ho un form dove la lunghezza massima della somma dei campi nome e descrizione non deve supereare i 93 caratteri, ho estrapolato una funzione che stabilisce la lunghezza del campo nome e assegna a maxlength come valore 93(il valore massimo) - la lunghezza di nome (che dovrebbe risultare in totale 93), ma non mi funziona.
    Qui di seguito vi riporto il codice:

    codice:
    <form name="form1">
    <input type="text" name="nome" id="nome" value="">
    <input type="text" name="descrizione" id="descrizione" value="" onFocus="maxcar()">
    </form>
    
    function maxcar(){
    lunghNome = form1.nome.length
    document.form1.descrizione.maxlength = 93 - lunghNome
    }
    dove sta l'errore???

    Grazie, ciao

  2. #2

    Re: [javascript] definire maxlength tramite function

    Prova semplicemente così:

    codice:
    <form name="form1">
    <input type="text" name="nome">
    <input type="text" name="descrizione">
    <input type="submit" value="Invia" onClick="return  maxcar();">
    </form>
    
    function maxcar(){
    if ((document.form1.nome.length + document.form1.descrizione.length)>93)
    {
    alert("Troppo lungo!" 
    return false;
    }
    else
    {
    return true
    }
    }
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  3. #3
    Il problema è che apparendo questa finestra, finquanto lo uso io che so come funziona è ok, perchè so cosa vuol dire, ma se gli appare ad un utente che non sa cosa significa perderei di professionalità.

    potrei mettere anche nell'alert la dicitura: immettere un input che non superi complessivamente i 93 caratteri.

    ma non tutti gli utenti sono esperti matematici.

    Grazie, ciao.

  4. #4
    Non so che risponderti: prova a scriverci "accorcia il nome o la descrizione."...

    Se il limite che hai è che la somma dei due campi non deve superare 93 caratteri, bisognerà che gli utenti siano in grado di capire questo concetto, altrimenti l'unica alternativa che ti resta è quella di troncare arbitrariamente il più lungo dei due in fase di scrittura nell'archivio.
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Non è una soluzione elegante ma funziona....

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>Untitled</title>
    </head>
    <body>
    <form name="form1">
    <input type="text" name="nome" id="nome" value="" onblur="maxcar()">
    <input type="text" name="descrizione" id="descrizione" value=""  >
    </form>
    <script language="JavaScript" type="text/javascript">
    <!--
    function maxcar(){
    lunghNome = document.form1.nome.value.length;
    b     = 93 - lunghNome;
    var a = '<input type="text" maxlength="'+b+'" name="descrizione" id="descrizione" value=""  >'
    
    document.getElementById('descrizione').outerHTML = a;
    }
    //-->
    </script>
    
    
    </body>
    </html>

  6. #6
    Originariamente inviato da badaze
    Non è una soluzione elegante ma funziona....

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>Untitled</title>
    </head>
    <body>
    <form name="form1">
    <input type="text" name="nome" id="nome" value="" onblur="maxcar()">
    <input type="text" name="descrizione" id="descrizione" value=""  >
    </form>
    <script language="JavaScript" type="text/javascript">
    <!--
    function maxcar(){
    lunghNome = document.form1.nome.value.length;
    b     = 93 - lunghNome;
    var a = '<input type="text" maxlength="'+b+'" name="descrizione" id="descrizione" value=""  >'
    
    document.getElementById('descrizione').outerHTML = a;
    }
    //-->
    </script>
    
    
    </body>
    </html>
    Si, ma se poi uno dalla descrizione ritorna sul nome e scrive dell'altro si cancella la descrizione...
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Originariamente inviato da Shores
    Si, ma se poi uno dalla descrizione ritorna sul nome e scrive dell'altro si cancella la descrizione...
    Era solo un esempio. Per ovviare cio' ....
    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>Untitled</title>
    </head>
    <body>
    <form name="form1">
    <input type="text" name="nome" id="nome" value="" onblur="maxcar()">
    <input type="text" name="descrizione" id="descrizione" value=""  >
    </form>
    <script language="JavaScript" type="text/javascript">
    <!--
    function maxcar(){
    lunghNome = document.form1.nome.value.length;
    preValue  = document.getElementById('descrizione').value;
    b     = 93 - lunghNome;
    var a = '<input type="text" maxlength="'+b+'" name="descrizione" id="descrizione" value=""  >'
    
    document.getElementById('descrizione').outerHTML = a;
    document.getElementById('descrizione').value     = preValue;
    }
    //-->
    </script>
    
    
    </body>
    </html>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.