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

    Gestire contenuto textarea

    Salve a tutti, sono un nuovo nella programmazione con javascript, mi volevo cimentare nella creazione di qualche script, ma ho incontrato un piccolo problema...

    Ho una textarea nella quale all'inserimento di un testo lo formatta e ne dovrebbe prendere i dati:
    codice:
    <textarea name="TextareaName" onKeyUp="ManageTextarea(this);">Inserisci qui il testo</textarea>
    Una volta inserito il testo, questo dovrebbe essere formattato ed alcune parti inserite all'interno di diversi input text

    Ora il problema sta nel testo da gestire.
    Il testo in sintesi è simile a questo:

    Lorem 123.456.789.123.456.789 Ipsum 222.424.232.323
    dolor 323.434.423.768
    sit 433.423.567 amet 555.678
    consectetur 434.534.435.767 adipiscing 434.234.234
    elit 535.536.878.123 Fusce 878.123.656.343.867
    Come posso ottenere i numeri di fianco alle parole con javascript?

    Credo di essere stato chiaro, o almeno lo spero!

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    devi risolvere con le regExp

    ti servono le parole prima dei numeri o solo i numeri stessi?

  3. #3
    Mi servono i numeri stessi, che dovrò inserire all'interno degli input :P

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    per esempio
    codice:
    function valutaTextarea(){
    	var f=document.nomeForm, c=0;
    	f.nomeTextarea.value.replace(/\b(\d{3}\.){1,}\d{3}\b/g, function(x){
    		var tf=f.elements['risultato'+(++c)];
    		if(tf) tf.value=x;
    	});
    }
    codice:
    <form name="nomeForm">
    	<textarea name="nomeTextarea" cols="40" rows="15"></textarea>
    
    	<input type="button" onclick="valutaTextarea()" value="valutaTextarea()" />
    
    <fieldset>
    <legend>risultati</legend>
    <input type="text" name="risultato1" />
    
    <input type="text" name="risultato2" />
    
    <input type="text" name="risultato3" />
    
    <input type="text" name="risultato4" />
    
    <input type="text" name="risultato5" />
    
    <input type="text" name="risultato6" />
    
    <input type="text" name="risultato7" />
    </fieldset>
    
    </form>
    ciao

  5. #5
    Grazie mille...
    Se invece dovessi inserire quei numeri in campi specifici?
    Mi spiego meglio, che prima non ho detto tutto.
    Ho un'array associativa che mi prende i nomi di quel testo e affianco gli input text corrispondenti:
    codice:
    	
            var text = new Object();
    	text['Lorem'] = '_d_0_b';
    	text['Ipsum'] = '_d_1_b';
    	text['dolor'] = '_d_2_b';
    	text['sit'] = '_d_3_b';
    	text['amet'] = '_d__b';
    	text['consectetur'] = '_d_5_b';
    	text['adipiscing'] = '_d_6_b';
    	text['elit'] = '_d_7_b';
    	text['Fusce'] = '_d_7_b';
    ...e l'array potrebbe continuare...
    Gli input sono quelli a destra cioè ad esempio '_d_0_b'

    Il seguente codice lo uso per trovare le corrispondenze nel testo inserito nella textarea, se ci sono Inserisce i dati negli input corrispondenti
    codice:
      for (var prop in text) {
    		if(campo.value.match(prop)){
    			campo.value = campo.value.replace(prop+'\t','\n'+prop);
    			InserisciDati(campo, text, prop);
    		}
    	}
    Dove campo è il nome della textarea e Inserisci dati è la funzione che mi hai scritto:

    codice:
    function InserisciDati(textareas, text, prop){
    	var f=textareas, c=0;
    	textareas.value.replace(/\b(\d{3}\.){1,}\d{3}\b/g, function(x){
    		var tf=	document.getElementById(text[prop]);
    		if(tf) tf.value=x;
    	});
    }
    È possibile allora scrivere quei numeri negli specifici input text se inserita la propria voce? (ad esempio Lorem)

  6. #6
    up

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    fortuna che te l' ho chiesto se ti servivano le parole oltre ai numeri

    puo' bastare questo
    codice:
    var text = new Object();
    	text['Lorem'] = '_d_0_b';
    	text['Ipsum'] = '_d_1_b';
    ...etc etc...
    
    function valutaTextarea(){
    	var f=document.nomeForm, c=0;
    	f.nomeTextarea.value.replace(/(\w+)\s((\d{3}\.){1,}\d{3})/g, function(tutto, parola, numero){
    		var tf=f.elements[text[parola]];
    		if(tf) tf.value=numero;
    	})
    }
    ciao

  8. #8
    Grazie, allora prima non avevo capito che mi chiedessi se servivano anche le parole, scusa! :P

    Comunque, c'è un piccolo problema...
    Se affianco alle parole ci sono numeri che prima del . hanno meno di 3 numeri, non li inserisce nell'input! :S

    E.G:
    255.255.255 Lo inserisce
    25.255.255 Non lo inserisce
    5.255.255 Non lo inserisce
    255.255 Lo inserisce

  9. #9
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    nel frattempo leggerti qualche tutorial sulle regexp in javascript non fa male
    ciao

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.