Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Creare campi input al volo

    E' possibile con js creare campi text al volo selezionandone il numero da un menù a tendina?

    www.sergiogandrus.it
    Il mio blog sull'informatica

  2. #2
    ho trovato questo codice che però funziona solo con IE e non con Mozilla. Qualcuno sa come fixare?

    codice:
    <script>
    function addInputElement(num){
    inputElements.innerHTML='';
    for(x=0;x<num;x++)inputElements.innerHTML=inputElements.inne rHTML +"<input value="+x+">
    "
    }
    </script>
    
    
    
    <select name=select1 onchange='addInputElement( select1.value )'>
    <option value=0>none</option>
    <option value=1>one</option>
    <option value=2>two</option>
    <option value=3>three</option>
    </select>
    </P>
    
    
    
    <form id=form1 name=form1>
    <div id=inputElements></div>
    </form>
    </p>
    www.sergiogandrus.it
    Il mio blog sull'informatica

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Prova questo....

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>Untitled</title>
    <script language="JavaScript" type="text/javascript">
    <!--
    var autoTextId = 0;
    function createText() {
     a = '<input type="text" size="40" id="autoText'+autoTextId+'">';
     autoTextId++;
     document.write(a);
    } // function createText(nbText)
    //-->
    </script>
    
    </head>
    <body>
    <table summary="">
    <tr>
     <td>
     <script language="JavaScript" type="text/javascript">
     <!--
     createText();
     //-->
     </script>
     </td>
     <td>
      <script language="JavaScript" type="text/javascript">
      <!--
      createText();
      //-->
      </script>
      </td>
    </tr>
    </table>
    </body>
    </html>

  4. #4
    Originariamente inviato da badaze
    Prova questo....

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>Untitled</title>
    <script language="JavaScript" type="text/javascript">
    <!--
    var autoTextId = 0;
    function createText() {
     a = '<input type="text" size="40" id="autoText'+autoTextId+'">';
     autoTextId++;
     document.write(a);
    } // function createText(nbText)
    //-->
    </script>
    
    </head>
    <body>
    <table summary="">
    <tr>
     <td>
     <script language="JavaScript" type="text/javascript">
     <!--
     createText();
     //-->
     </script>
     </td>
     <td>
      <script language="JavaScript" type="text/javascript">
      <!--
      createText();
      //-->
      </script>
      </td>
    </tr>
    </table>
    </body>
    </html>
    a che serve?
    www.sergiogandrus.it
    Il mio blog sull'informatica

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    No, badaze, non si possono usare i document.write() dentro un documento chiuso (cioe` in cui la pagina e` completa).

    Ma non si possonousare le routine valide in IE per far funzionare una cosa che deve girare in tutti i browser: IE ha un suo linguaggio proprietario che gli altri non capiscono.

    Occorre usare la proprieta` .innerHTML degli elementi HTML e scrivere in tale proprieta`, oppure usare createNode() (che non ho mai usato, ma ho visto alcuni thread in questo forum).

    Piu` semplice sarebbe abilitare o disabilitare dei campi gia` presenti nel form. E quello si puo` fare con una semplice funzione JS con due loop.
    Dato che immagino che il numero massimo sia predefinito (altrimenti non si potrebbe usare una select), forse e` una soluzione da prendere in considerazione.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Originariamente inviato da Mich_
    No, badaze, non si possono usare i document.write() dentro un documento chiuso (cioe` in cui la pagina e` completa).

    Ma non si possonousare le routine valide in IE per far funzionare una cosa che deve girare in tutti i browser: IE ha un suo linguaggio proprietario che gli altri non capiscono.

    Occorre usare la proprieta` .innerHTML degli elementi HTML e scrivere in tale proprieta`, oppure usare createNode() (che non ho mai usato, ma ho visto alcuni thread in questo forum).

    Piu` semplice sarebbe abilitare o disabilitare dei campi gia` presenti nel form. E quello si puo` fare con una semplice funzione JS con due loop.
    Dato che immagino che il numero massimo sia predefinito (altrimenti non si potrebbe usare una select), forse e` una soluzione da prendere in considerazione.
    nel codice che ho postato cosa è proprietario di IE?
    www.sergiogandrus.it
    Il mio blog sull'informatica

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Provo a riscrivere tutto con sintassi JS (standard) e XHTML, puo` darsi che funzioni.
    codice:
    <head>
    ...
    <script type="text/javascript">
    function addInputElement(num){
      var inpEl = document.getElementById('inputElements');
      inpEl.innerHTML = '';
      for(var x=0; x<num; x++)
        inpEl.innerHTML += "<input value="+x+">
    "
    }
    </script>
    <head>
    
    <body>
    <div>
      
    
    
        <select name="select1" onchange="addInputElement( this.options[this.selectedIndex].value);">
          <option value="0">none</option>
          <option value="1">one</option>
          <option value="2">two</option>
          <option value="3">three</option>
        </select>
      </p>
      
    
    
        <form id="form1" name="form1">
          <div id="inputElements"> </div>
        </form>
      </p>
    </div>
    </body>
    Non sono comunque sicuro che aggiungere elementi al div, li aggiunga automaticamente al form.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Funziona con Mozilla e con IE ma effettivamente non crea altri campi input. Non effettua parsing.

    Dove trovo lo script per abilitare i campi tramite menù a tendina?

    Grazie
    www.sergiogandrus.it
    Il mio blog sull'informatica

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non lo trovi in giro, te lo faccio al volo:

    codice:
    <head>
    ...
    <script type="text/javascript">
    function addInputElement(ss){
      var i=0;
      var num = parseInt(ss.options.[ss.selectedIndex].value,10);
      for (i=1; i<=num; i++) {
        ss.form.elements['campo'+i].disabled = false;
      }
      for (; i<=6; i++) {
        ss.form.elements['campo'+i].disabled = true;
      }
    }
    </script>
    <head>
    
    <body>
    <div>
      
    
    
        <select name="select1" onchange="addInputElement(this);">
          <option value="0">none</option>
          <option value="1">one</option>
          <option value="2">two</option>
          <option value="3">three</option>
        </select>
      </p>
      
    
    
        <form id="form1" name="form1">
          <input type="text" value="1" name="campo1" disabled="true">
          <input type="text" value="2" name="campo2" disabled="true">
          <input type="text" value="3" name="campo3" disabled="true">
          <input type="text" value="4" name="campo4" disabled="true">
          <input type="text" value="5" name="campo5" disabled="true">
          <input type="text" value="6" name="campo6" disabled="true">
        </form>
      </p>
    </div>
    </body>
    Provalo: potrebbero esserci errori di sintassi.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    Originariamente inviato da Mich_
    Non lo trovi in giro, te lo faccio al volo:
    .......
    Provalo: potrebbero esserci errori di sintassi.
    Grazie controllerò
    www.sergiogandrus.it
    Il mio blog sull'informatica

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.