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

    Limitare caratteri in campi di testo - LimitInput

    Buongiorno,
    mi riferisco allo script proposto ieri da html.it in home page, del quale ripropongo parte del codice (ho tolto ciò che non mi serviva):

    <head>
    <script language="javascript" type="text/javascript">
    function LimitInput(jsField, CounterField, MaxNum) {
    if (jsField.value.length > MaxNum) {
    jsField.value = jsField.value.substring(0, MaxNum);
    } else {
    CounterField.value = MaxNum - jsField.value.length;
    }
    }
    </script>
    </head>

    <body>
    <h1>Limitare i caratteri in campi di testo e textarea</h1>

    <form name="myform">
    <h2>Campo di testo</h2>

    <input type="text" size="50" name="mytextbox" onkeydown="LimitInput(this.form.mytextbox,this.for m.textcount,100);" onkeyup="LimitInput(this.form.mytextbox,this.form. textcount,100);"/>


    <input readonly type="hidden" name="textcount" size="3" value="100">
    </form>
    </body>


    Il suddetto script l'ho richiamato all'interno di un form creato dinamicamente con PHP:

    <FORM METHOD="POST" action="<?php $_SERVER['PHP_SELF'];?>">
    <fieldset>
    <input readonly type="hidden" name="DescrizioneMerciTextcount" value="100">
    <input id="Descrizione_merci" type="text" size="50" name="DescrizioneMerci" onkeydown="LimitInput(this.form.DescrizioneMerci,t his.form.DescrizioneMerciTextcount,100);" onkeyup="LimitInput(this.form.DescrizioneMerci,thi s.form.DescrizioneMerciTextcount,100);"/>

    <?php
    while($record = mysql_fetch_array($result)){
    $righeEur1_descrizione_merci = $record['descrizione_merci'];

    echo "<input type=\"hidden\" name=\"hiddenId[]\" value=\"$righeEur1_numero_riga\">";
    echo "<input id=\"Descrizione_merci\" type=\"text\" size=\"50\" name=\"DescrizioneMerci\" value=\"$righeEur1_descrizione_merci\" onkeydown=\"LimitInput(this.form.DescrizioneMerci, this.form.DescrizioneMerciTextcount,100);\" onkeyup=\"LimitInput(this.form.DescrizioneMerci,th is.form.DescrizioneMerciTextcount,100);\">";
    }

    mysql_free_result($resultRigheEur1);

    ?>

    <input type="submit" name="Modifica_s8" value="Salva" title="Salva la sezione 8">
    </fieldset>
    </FORM>


    Che cosa succede:
    come vedete nel form ci sono 2 input DescrizioneMerci. Il primo è HTML puro l'altro è HTML creato dinamicamente da PHP.
    Lo script LimitInput in questione funziona solo sul primo DescrizioneMerci. oltretutto funziona sul primo DescrizioneMerci se commento la creazione del DescrizioneMerci dinamico.

    chiedo anche alla sezione PHP?

    Anticipo comunque ringraziamenti per l'aiuto.

    Ciao!
    - è partito un pistone
    - poi ritorna?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Id deve essere univoco nel documento, cambia id e name del input generato da php e dovrebbe funzionare
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    ciao,
    effettivamente come dici tu , non è tanto l'id che fa problema ma è il name!

    il mio script php produce tante righe con lo stesso name e id ma ho creato 2 input DescrizioneMerci con lo stesso name e lo script non va.

    differenziando il nome funziona.

    ora provo sul dinamico!

    vi aggiorno!

    grazie ciao!
    - è partito un pistone
    - poi ritorna?

  4. #4
    Funziona!

    Premettendo ancora che il famoso javascript di riferimento è:

    <script language="javascript" type="text/javascript">
    function LimitInput(jsField, CounterField, MaxNum) {
    if (jsField.value.length > MaxNum) {
    jsField.value = jsField.value.substring(0, MaxNum);
    } else {
    CounterField.value = MaxNum - jsField.value.length;
    }
    }
    </script>




    Mentre nella pagina dove si crea un form dinamicamente, dopo aver estratto il numero riga con php:
    ....bla bla bla QUERY SQL e bla bla bla...
    $record_righe = mysql_fetch_array($resultRighe);

    ?>
    <FORM METHOD="POST" action="<?php $_SERVER['PHP_SELF'];?>">
    <fieldset>
    <input readonly type="hidden" name="DescrizioneMerciTextcount" value="100">

    <?php
    while($record_righe = mysql_fetch_array($resultRighe)){
    $numero_riga = $record_righe['numero_riga'];//ho il numero riga
    $descrizione_merci = $record_righe['descrizione_merci'];

    il name della riga creata dinamicamente deve essere differenziato dalle altre mettendoci appunto il $numero_riga accanto al nome "Descrizione_merci"

    echo "<input id=\"Descrizione_merci\" type=\"text\" name=\"Descrizione_merci$numero_riga\" value=\"$descrizione_merci\" onkeydown=\"LimitInput(this.form.Descrizione_merci $numero_riga,this.form.DescrizioneMerciTextcount,1 00);\" onkeyup=\"LimitInput(this.form.Descrizione_merci$n umero_riga,this.form.DescrizioneMerciTextcount,100 );\"\/>";



    e così funza!
    Sciao.
    - è partito un pistone
    - poi ritorna?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.