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

    Consigli su uno script (Ho iniziato da poco a programmare)

    salve ragazzi vorrei dei suggerimenti su questo script Javascript, sto facendo delle prove per prendere dimistichezza con l'argomento, semplicemente volevo fare in modo che ad ogni click del pulsante si aggiungesse un form in pi�, pi� o meno ci sono riuscito ma mi sono accorto che la funzione non era generalizzabile e per ogni form aggiunto avrei dovuto cambiare i parametri e aggiungere una nuova funzione. Lo script � il seguente:

    codice:
    <!doctype html><html>
    <head>
    <meta charset="utf-8">
    <title>Prova</title>
    
    
    
    
    </head>
    
    
    <body>
    
    
    <div>
    <form name="campione1" id="camp1"> 
       <input type="number" value="0" name="valori">
    </form>  
       <input type="button" name="addnumber" value="+" onClick="aggiungi(camp1)">
    </div>
    
    
    <div>
    <form name="campione2" id="camp2"> 
       <input type="number" value="0" name="valori">
    </form>  
       <input type="button" name="addnumber" value="+" onClick="aggiungi()" align="left">
    </div>
    
    
    <div>
    <form name="campione3" id="camp3"> 
       <input type="number" value="0" name="valori">
    </form>  
       <input type="button" name="addnumber" value="+" onClick="aggiungi()" align="left">
    </div>
       
    <br>
       <input type="button" name="invia1" value="Elabora">
    
    
    
    
    
    <script type="text/javascript">  
    
    
    function aggiungi (a) {
    
    
    var inp = document.createElement("input");
    var inpat = document.createAttribute("type");
    inpat.value = "number";
    inp.setAttributeNode(inpat);  // crea un nuovo form number //
    
    
    var camp = new String (""+a);
    document.getElementById(""+camp).appendChild(inp);  }
    
    
    
    
                                         
    </script>
    
    
    </body>
    </html>
    Il punto � che vorrei che leggesse la variabile "a" come stringa in modo da poter specificare direttamente dalla funzione ogni volta che la inserisco a quale form si riferisce.

    Grazie Mille in anticipo per le risposte

  2. #2
    Guest
    Registrato dal
    Jun 2012
    residenza
    Espoo, Finland
    Messaggi
    286
    Ciao, il problema e' che quando passi il nome del form (e.g. camp1) devi mettero tra quotes perche' altrimenti e' gia' un riferimento all'elemento con quell'id. Secondo puoi semplificare un po' il JavaScript che aggiunge il campo al form:

    codice:
    <!doctype html>
    <html>
    <head>
    	<meta charset="utf-8">
    	<title>Prova</title>
    </head>
    <body>
    		<form name="campione1" id="camp1">
    			<input type="number" value="0" name="valori">
    		</form>
    		<input type="button" name="addnumber" value="+" onClick="aggiungi('camp1')">
    	</div>
    
    
    	<div>
    		<form name="campione2" id="camp2">
    			<input type="number" value="0" name="valori">
    		</form>
    		<input type="button" name="addnumber" value="+" onClick="aggiungi('camp2')" align="left">
    	</div>
    
    
    	<div>
    		<form name="campione3" id="camp3">
    			<input type="number" value="0" name="valori">
    		</form>
    		<input type="button" name="addnumber" value="+" onClick="aggiungi('camp3')" align="left">
    	</div>
    
    
    	<br>
    	<input type="button" name="invia1" value="Elabora">
    
    
    	<script type="text/javascript">
    		function aggiungi(parent) {
    			var input = document.createElement("input");
    			input.setAttribute("type", "number");
    			document.getElementById(parent).appendChild(input);
    		}
    	</script>
    </body>
    </html>

  3. #3
    Grazie mille, insomma il problema era che usavo " " invece di ' ', pensavo che non facesse differenza quali limitatori si usassero. Cmq ora capisco anche perchè quando scrivevo document.write(camp1) mi stampava htmFormelement...

    Sei stato gentilissimo da solo non ci sarei mai arrivato. Se hai un po di tempo sapresti dirmi anche come scegliere in che posizione del form far apparire il campo, come vedi ho usato i "div" per racchiudere tutti i moduli del form e appendChild per inserirlo nell'array come ultimo figlio, ma mi chiedevo se ci fosse modo di specificare di inserirlo dalla seconda posizione in poi.

    Grazie ancora

  4. #4
    Guest
    Registrato dal
    Jun 2012
    residenza
    Espoo, Finland
    Messaggi
    286
    In vanilla JavaScript potresti usare qualcosa come insertBefore ​e metodi simili

    https://developer.mozilla.org/en-US/...e/insertBefore

  5. #5
    Quote Originariamente inviata da Little Hawk Visualizza il messaggio
    In vanilla JavaScript potresti usare qualcosa come insertBefore ​e metodi simili

    https://developer.mozilla.org/en-US/...e/insertBefore
    Va bene proverò, Grazie ancora

  6. #6
    Guest
    Registrato dal
    Jun 2012
    residenza
    Espoo, Finland
    Messaggi
    286
    Quote Originariamente inviata da brauvince91 Visualizza il messaggio
    Va bene proverò, Grazie ancora
    np

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.