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

    valore textarea come proprietà oggetto

    creando questa classe:

    function InsertInField(modulo,fieldName){

    this.modulo = document.forms[modulo]; // nome del mio modulo
    this.fieldName = fieldName; // nome del textarea in cui verrà inserito il testo
    this.fieldValue = document.forms[modulo].elements[fieldName].value;
    this.showKeyboard = InsertInField_showKeyboard; // visualizza la tastiera
    this.boldT = InsertInField_boldT;
    this.underlineT = InsertInField_underlineT;
    this.linkT = InsertInField_linkT;
    this.br = InsertInField_br;
    this.paragraph = InsertInField_paragraph;
    this.list = InsertInField_list;
    }

    this.fieldName non mi da problemi, mentre this.fieldValue provoca questo messaggio di errore:

    document.forms[modulo].elements[fieldName].value non è un'oggetto.

    com'è possibile?
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Sul mio IE5.5 sembra non dare problemi... anche se mi sarei aspettato che non gli piacesse la duplicazione dei nomi:
    codice:
    function InsertInField(modulo, fieldName){ 
    
    this.modulo = document.forms[modulo]; // nome del mio modulo 
    this.fieldName = fieldName; // nome del textarea in cui verrà inserito il testo
    Verifica piuttosto di non averli utilizzati altrove...

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3

    ho risolto ma..

    intanto grazie,
    era perchè facevo riferimento al textarea ancora prima che esso fosse generato dinamicamente da document.write, però non capisco una cosa, ho questo listato (metodo costruttore uguale a prima ma corretto):
    codice:
    function InsertInField(modulo,fieldName){
    	
    	this.modulo = document.forms[modulo]; // nome del mio modulo
    	this.fieldName = fieldName; // nome del textarea in cui verrà inserito il testo
    	this.showKeyboard = InsertInField_showKeyboard;
    	this.showKeyboard(); // visualizza la tastiera	
    	this.boldT = InsertInField_boldT;
    	this.underlineT = InsertInField_underlineT;
    	this.linkT = InsertInField_linkT;
    	this.br = InsertInField_br;
    	this.paragraph = InsertInField_paragraph;
    	this.list = InsertInField_list;	
    }
    negli altri metodi faccio riferimento al valore del textarea così:

    codice:
    this.modulo.elements[this.fieldName].value
    ORA: perchè se il valore sopra lo imposto come proprietà nel costruttore in questo modo:
    codice:
    this.fieldValue = document.forms[modulo].elements[fieldName].value;
    e faccio riferimento, negli altri metodi, al valore del textarea semplicemente con this.fieldValue non funzia?

    PS: ho appena iniziato a provare la programmzione ad oggetti in JS, secondo me mi sfugge qualcosa, forse non so ancora come definire correttamente le proprietà.... :master:
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

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.