Visualizzazione dei risultati da 1 a 10 su 10

Discussione: return false non va

  1. #1

    return false non va

    codice:
    function trecar(value){
    var lung=value.length;
    if(lung<"3"){
     alert("attenzione vanno inseriti più di tre caratteri!");
     value.focus();
     return false;
     }
    }
    ciao, ho il sopracitato codice, che non funziona. Se elimino dallo script il value.focus() tutto funge, mentre se lo lascio non va.
    In uno script analogo, invece funziona. Come mai secondo voi?

  2. #2
    ma value è una variabile e non un oggetto di un form quindi non puoi farci il .focus....

  3. #3
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    value è una parola riservata... se devi fare il focus alla funzione devi passare l'oggetto
    codice:
    function trecar(obj){
    var lung=obj.value.length;
    if(lung<"3"){
     alert("attenzione vanno inseriti più di tre caratteri!");
     obj.focus();
     return false;
     }
    }
    da richiamare così
    codice:
    trecar(document.NomeForm.NomeCampoText)

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    if(lung < 3){

    lung e` un numero, non una stringa; altrimenti "10" e` minore di "3"
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    ha ragione Mich_ il "3" tra virgolette sarebbe una stringa (non me ne ero accorto)
    però js è "intelligente" e vedendo che il primo parametro di confronto è un numero converte automaticamente in numero la stringa "3"

  6. #6
    la cosa non cambia.
    Mi avvisa che i caratteri sono minori di tre, ma comunque mi esegue il form.

    ora è cosi:
    codice:
    function trecar(obj){
    var lung=obj.length;
    if(lung<3){
    alert("attenzione vanno inseriti più di tre caratteri!");
    obj.focus();
    return false;
    
    }
    
    }

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    L'errore e` nel codice dell'evento che chiama la funzione: probabilmente manca un return, ma e` difficile correggere un codice che non si conosce.
    Posta tutto il tag HTML.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    codice:
    <form name="ricercaform" method="post" action="index.php?show=src" onSubmit="return trecar(testoricerca.value)"> <input type="text" name="testoricerca" id="testoricerca"><input type="submit" name="Submitricerca" id="submitcerca" value="Cerca">
     </form>
    questo è il form con la chiamata, la funzione invece è nel post sopra.

    Funziona solo se tolgo il focus()

    ...
    azz. io gli passo il value!!!

    che pirla!!!!!

    quindi la chiamata diventa
    codice:
    ..onSubmit="return trecar(testoricerca)">..
    e la funzione
    codice:
    function trecar(sobj){
    var obj=sobj.value;
    var lung=obj.length;
    if(lung<3){
    alert("attenzione vanno inseriti più di tre caratteri!");
    sobj.focus();
    return false;
    }
    }
    ora funzia.

    Grazie a tutti!!!

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    La sintassi JS e`:
    onSubmit="return trecar(this.form.testoricerca)"

    la tua funziona solo in IE
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10

    no...

    modificherò come dici tu.
    Comunque è un bel pezzo che ho lasciato perdere IE!!

    Firefox lolegge tranquillamente!!!

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.