Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150

    [JS] Problema con un focus su input nascosti

    Ciao a tutti,
    ho una form con vari input, i quali vengono visualizzati ogni volta che viene inserito il dato nel precedente input. Per visualizzare input 2 devo inserire (e validare) i valori nell'input 1, per l'input 3 devo inserire nell'input 2, e cosi' via...

    Il problema nasce nell'impostare il focus sull'input successivo a quello in cui sto scrivendo.
    Il focus infatti si sposta sulla barra degli indirizzi del navigatore.
    Come posso risolvere?

    Grazie in anticipo

    Qui il codice js

    Codice PHP:
    function goToNextStep(iTagId,sNextStep,sNextTag,sValidate){

    oTag=document.getElementById(iTagId);   
    if(!oTag) return;
    sValue=(oTag.options)? oTag.options[oTag.selectedIndex].value:oTag.value;
       
    if(sValidate){
       if(!validateExp(sValue,sValidate))
          return alert('<?=_ERROR_WRONG_VALUE?>');
    }
       
    if(trim(sValue)){
       fnShowHidde(sNextStep,'');
       if(sNextTag){
          document.getElementById(sNextTag).style.visibility = 'visible';
          document.getElementById(sNextTag).focus();
       }
    }else
       fnShowHidde(sNextStep,'none');
    }
    Qui il codice html da dove chiamo la funzione (dove plan_name sarebbe l'input 1 e plan_description l'input 2). Chiaramente ci sono altri input...

    Codice PHP:
    <tr id='step1' >
         <td><?=_NAME?></td>
         <td><input type="text" id="plan_name"  <?=$readonly?> value="<?=$aPlan['plan_name']?>" onblur="goToNextStep(this.id,'step2','plan_description');"></td>
    </tr>   
    <tr id='step2'  <?=$display?> >
         <td><?=_DESCRIPTION?></td>
         <td><input type="text" id="plan_description" name="plan_description" <?=($sAction=='edit')?'':$readonly?> value="<?=$aPlan['plan_description']?>" onblur="goToNextStep(this.id,'step3','state_id');"></td>
    </tr>

  2. #2
    ad un primo controllo, incollando il codice che hai postato su una pagina e facendolo masticare a Firefox, il debugger JS mi dice che non sa che roba sia "tim"
    if(trim(sValue)){
    e poi anche la funzione sotto fnShowHide non gli piace, quindi ho eliminato semplicemente il trim e riscritto quel pezzo di codice JS così:

    if(sValue){
    document.getElementById(sNextStep).style.display = 'block';
    if(sNextTag){
    document.getElementById(sNextTag).style.visibility = 'visible';
    document.getElementById(sNextTag).focus();
    }
    }else
    document.getElementById(sNextStep).style.display = 'none';
    }
    ora nella mia paginetta di test sembra funzionare

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Grazie.

    Provo immediatamente e ti(vi) faccio sapere.

    Edit
    Purtroppo non funziona. Ho cambiato cosi' (ho sostituito "block" con ' ' al tuo codice)

    Codice PHP:
        if(sValue){
            
    document.getElementById(sNextStep).style.display '';
            if(
    sNextTag){
                
    document.getElementById(sNextTag).style.visibility 'visible';
                
    document.getElementById(sNextTag).focus();
            }
        }else{
            
    document.getElementById(sNextStep).style.display 'none';
        } 

  4. #4
    potresti postare o linkare la pagina completa per cortesia?
    possibili conflitti con altri javascript o elementi del form, anche se mi par strano, ma il codice che ti avevo mandato, montato da solo su una paginetta html banale, funzionava senza problemi (con "block" e non "")

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Originariamente inviato da luca777
    potresti postare o linkare la pagina completa per cortesia?
    possibili conflitti con altri javascript o elementi del form, anche se mi par strano, ma il codice che ti avevo mandato, montato da solo su una paginetta html banale, funzionava senza problemi (con "block" e non "")
    Purtroppo e' un progetto interno e non ho link da passare.
    Il "block" l'ho tolto ma solo per problemi di visualizzazione del <tr>
    Comunque, anche in questo caso il focus non veniva correttamente impostato sull'input.

    Una cosa.
    Nella tua pagina di prova, hai inserito il mio codice e non ti funzionava. Mentre dopo le modifiche si?

    Sto anch'io facendo il debuger con JS, ma non trovo l'errore.

  6. #6
    perdonami ma al momento non ho modo di accedere al mio file di prova di ieri sera, magari ci riguardo 'sta sera, cmq prima col tuo codice non andava ma dopo la modifica invece funzionava

    ho però omesso un'altra modifica che ho fatto, forse a questo punto non trascurabile:
    siccome nel tuo codice c'erano parti in PHP, le ho rimosse o sostituite con testo semplice.
    forse forse invece il problema proprio lì, prova a postare, o verificare comunque, il codice non lato sorgente ma lato browser finale, dove le stringhe in php vengono poi sostituite, magari troverai qualche tag duplicato o apice/virgolette chiuse male, chissà

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Originariamente inviato da luca777
    perdonami ma al momento non ho modo di accedere al mio file di prova di ieri sera, magari ci riguardo 'sta sera, cmq prima col tuo codice non andava ma dopo la modifica invece funzionava

    ho però omesso un'altra modifica che ho fatto, forse a questo punto non trascurabile:
    siccome nel tuo codice c'erano parti in PHP, le ho rimosse o sostituite con testo semplice.
    forse forse invece il problema proprio lì, prova a postare, o verificare comunque, il codice non lato sorgente ma lato browser finale, dove le stringhe in php vengono poi sostituite, magari troverai qualche tag duplicato o apice/virgolette chiuse male, chissà
    Ok, cerco di postare il codice finale.
    Prima verifico se c'e' qualche problema di sintassi e sostituisco anche le parti php che mi hai detto.

    Grazie per tutte le risposte e...tua la pazienza.

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.