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

    setAttribute e Firefox: un mistero...

    Ciao a tutti,
    stavo lavorando ad un javascript con cui creo dinamicamente un calendarietto, nel quale sono inseriti due bottoni che permettono di scorrere avanti e indietro i mesi.
    Tali bottoni vengono creati dinamicamente tramite una funzione alla quale passo nome, valore e verso di scorrimento (positivo o negativo).
    Con mia grande sorpresa, ha funzionato praticamente al primo colpo anche l'onclick viene gestito correttamente e tutto quanto.
    Unico, inspiegabile baco: con Firefox e Opera il value del bottone, pur settato, non viene visualizzato

    la funzione è questa

    function makebutton(nome, valore, verso) {
    var onC = 'scorrimese('+verso+')';
    with(bottone = d.createElement('button'))
    {
    setAttribute('name', nome);
    setAttribute('value', valore);
    setAttribute('class', 'Bottone'); // setta la classe in Mozilla
    setAttribute('className', 'Bottone'); // setta la classe in IE
    style.width = '15px';
    style.height = '20px';
    onclick = new Function(onC);
    }
    return bottone;
    }


    (accetto anche osservazioni sull'eleganza o meno della stessa)
    Il value del bottone in questo contesto è semplicemente un simbolo di maggiore o minore che simula la freccia avanti o indietro, niente più di un'etichetta, ma non capisco perchè non funzioni.
    Exploder funziona senza problemi, mentre Firefox scrive il bottone vuoto (ma se metto un alert e mi faccio scrivere il valore ce l'ha). Ciò avviene qualsiasi sia il valore che imposto, e con qualsiasi sintassi (prima del setAttribute avevo usato semplicemente bottone.value=valore; ma con il medesimo risultato.
    Vero che non ne va del funzionamento dello script, ma ora è una questione di principio capire perchè lo fa
    Cosa mi sfugge?
    Grazie a tutti!

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    un button mostra a video quanto racchiuso al suo interno
    <button value="questo non viene mostrato">questo viene mostrato</button>

    quindi o ne definisci l' innerHTML
    o procedi via createTextNode e appendChild al button

    ciao

  3. #3
    Grazie mille, in effetti andavo troppo sul difficile per quello che poi mi serviva... con la stessa sintassi ma creando un input type button anzichè scomodare un button ho risolto il problema. Sulla possibilità di usare il createTextNode ci sto sbattendo la testa a parte perchè mi interessa come modo di operare, se ho problemi vi chiedo lumi di nuovo

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