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

    Problema property value in componente "button" con firefox

    Salve a tutti ho un problema che credo sia abbastanza banale da risolvere, ma ahimè non ci riesco.

    Voglio abilitare in una pagina la possibilità di utilizzare le accessKey attraverso una variabile globale global_useAccessKey. Al window_onload voglio poter associare N componenti il valore dell'accessKey richiesto attraverso una funzione AddAccessKeyItem che non fa altro che aggiungere l'accessKey, modificare il title e aggiungere tra parentesi il carattere relativo all'accessKey nel codice.

    Su IE 7 mi funziona, su Firefox 3.0.4 funziona in parte. L'unica cosa che non esegue è la modifica della property value del componente button.

    Mi sapete aiutare?

    Sotto riporto il codice (PHP)



    Codice PHP:
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=latin1"/>
    <
    title>Test value button</title>
    </
    head>
    <
    body onload="javascript: window_onload(event);">

    <
    script type="text/javascript">
    <!--
    //PARAMETRI GLOBALI
    /*
    global_useAccessKey        indica se vengono utilizzati i pulsanti accessKey    
    */
    var global_useAccessKey;
        
    global_useAccessKey true;


    //Funzione che aggiunge la property accessKey e modifica il title
    //Parametri ingresso:
    //evento, ElementID, Carattere relativo accessKey
    function AddAccessKeyItem(eElementIDCarattere)
    {
        try
        {
            if (
    global_useAccessKey)
            {
                
    alert(e);
                if(!
    ewindow.event;

                var 
    objectKeyItem document.getElementById(ElementID);
                if (
    objectKeyItem)
                {
                    
    objectKeyItem.accessKey Carattere;
                    if (
    navigator.userAgent.toLowerCase().indexOf("msie") != -1)
                        
    objectKeyItem.title += " (ALT+"+Carattere+")";
                    else
                        
    objectKeyItem.title += " (ALT+SHIFT+"+Carattere+")";
                    
                    
    alert(objectKeyItem.accessKey);
                    
    objectKeyItem.value "("+Carattere+") " objectKeyItem.value;
                    
    // document.all.elementID.accessKey = value // IE only
                    
    alert(objectKeyItem.value);
                }
                else
                    throw 
    "IDUndefined";
            }
        }
        catch (
    e)
        {
            switch(
    e)
            {
                case 
    "IDUndefined":
                    
    alert("Errore funzione 'AddAccessKeyItem'. Non esiste il componente con ID " ElementID);
                default:
                    
    alert(e);
            }
        }
    }


    function 
    window_onload(e)
    {
        
    // alert(global_useAccessKey);
        
    AddAccessKeyItem(e'BuCerca''1');
    }

    //-->
    </script>


    <table>
    <tr>
    <td>
        <button type="submit" id="BuCerca"  accesskey="__" value="CercaAA">Cerca</button>
    </td>
    </tr>
    </table>

    </body>
    </html> 
    Io non mi nascondo nel doppio fondo del sistema, studio e affronto il problema,
    traccio uno schema, dimostro il teorema in forma di poema,
    secondo il principio assoluto e perfetto, che del mondo tu devi essere la causa e non l'effetto

    www.zambros.it

  2. #2
    Non so perché ma il codice incollato non corrisponde a quello originale...
    Lo riporto senza tag qui sotto.


    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=latin1"/>
    <title>Test value button</title>
    </head>
    <body onload="javascript: window_onload(event);">

    <script type="text/javascript">
    <!--
    //PARAMETRI GLOBALI
    /*
    global_useAccessKey indica se vengono utilizzati i pulsanti accessKey
    */
    var global_useAccessKey;
    global_useAccessKey = true;


    //Funzione che aggiunge la property accessKey e modifica il title
    //Parametri ingresso:
    //ElementID, Carattere relativo accessKey
    function AddAccessKeyItem(e, ElementID, Carattere)
    {
    try
    {
    if (global_useAccessKey)
    {
    alert(e);
    if(!e) e = window.event;

    var objectKeyItem = document.getElementById(ElementID);
    if (objectKeyItem)
    {
    objectKeyItem.accessKey = Carattere;
    if (navigator.userAgent.toLowerCase().indexOf("msie") != -1)
    objectKeyItem.title += " (ALT+"+Carattere+")";
    else
    objectKeyItem.title += " (ALT+SHIFT+"+Carattere+")";

    alert(objectKeyItem.accessKey);
    objectKeyItem.value = "("+Carattere+") " + objectKeyItem.value;
    // document.all.elementID.accessKey = value // IE only
    alert(objectKeyItem.value);
    }
    else
    throw "IDUndefined";
    }
    }
    catch (e)
    {
    switch(e)
    {
    case "IDUndefined":
    alert("Errore funzione 'AddAccessKeyItem'. Non esiste il componente con ID " + ElementID);
    default:
    alert(e);
    }
    }
    }


    function window_onload(e)
    {
    // alert(global_useAccessKey);
    AddAccessKeyItem(e, 'BuCerca', '1');
    }

    //-->
    </script>


    <table>
    <tr>
    <td>
    <button type="submit" id="BuCerca" accesskey="__" value="CercaAA">Cerca</button>
    </td>
    </tr>
    </table>

    </body>
    </html>
    Io non mi nascondo nel doppio fondo del sistema, studio e affronto il problema,
    traccio uno schema, dimostro il teorema in forma di poema,
    secondo il principio assoluto e perfetto, che del mondo tu devi essere la causa e non l'effetto

    www.zambros.it

  3. #3
    Se di Button si tratta, invece di :
    codice:
    objectKeyItem.value = "("+Carattere+") " + objectKeyItem.value;
    scrivi:
    codice:
    objectKeyItem.innerHTML = "("+Carattere+") " + objectKeyItem.value;
    Perch&egrave; per quanto riguarda il tag Button, ci&ograve; che si vede nel bottone &egrave;
    ci&ograve; che &egrave; contenuto nel tag, non il suo value.
    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    il problema non e' strettamente legato a javascript,
    ma da come il browser interpreta il value di un <button>

    credo IE rifletta il value del button su quanto racchiuso tra <button></button>
    per gli altri browser il value e' solo quanto presente in value=""

    semplicemente fai cosi'
    codice:
                    objectKeyItem.value = "("+Carattere+") " + objectKeyItem.value;
    		objectKeyItem.firstChild.nodeValue=objectKeyItem.value;
    che non generera' problemi in IE e risolvera' con tutti gli altri

    ciao

  5. #5
    Grazie ad entrambi per le risposte

    Ho notato un'altra cosa. Se via design non "creo" la property accessKey che di default ho dato "__" firefox non riesce a scatenare l'accessKey. Ho fatto il workaround di impostare un valore di default.

    Qualche idea anche su questa cosa?
    Io non mi nascondo nel doppio fondo del sistema, studio e affronto il problema,
    traccio uno schema, dimostro il teorema in forma di poema,
    secondo il principio assoluto e perfetto, che del mondo tu devi essere la causa e non l'effetto

    www.zambros.it

  6. #6
    edit
    Io non mi nascondo nel doppio fondo del sistema, studio e affronto il problema,
    traccio uno schema, dimostro il teorema in forma di poema,
    secondo il principio assoluto e perfetto, che del mondo tu devi essere la causa e non l'effetto

    www.zambros.it

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.