Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Nel campo appare true

  1. #1
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544

    Nel campo appare true

    Quando nel form si inserisce una parola proibita e poi esco dal campo, appare l'alert, però la parola proibita si sostituisce con la parola true, perchè?



    codice:
              
    function xxx1(){ 
    var modulo = document.forms.mioform1;
    var parole = /\b(<?php echo $stringaJs; ?>)\b/i;
    var nomiCampi = ["nome","citta","suoemail","messaggio"];
    for (idCampo = 0; idCampo < nomiCampi.length; idCampo++) {
    var campo = modulo.elements[nomiCampi[idCampo]];
    if (parole.test(campo.value)) {
    campo.style.backgroundColor = "red";
    alert("La parola \"" + campo.value.match(parole)[0] + "\" non è ammessa.");
    campo.focus();
    return false
    }
     }
    return true; 
    }
    
    <input type="text"...onblur="this.value=xxx1()"/>

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    glielo stai dicendo tu
    this.value=quello che ritorna xxx1

  3. #3
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544
    Originariamente inviato da Xinod
    glielo stai dicendo tu
    this.value=quello che ritorna xxx1
    Se metto così continua a uscire l'alert

    onblur="xxx1()"

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    spiega meglio "continua a uscire l'alert"

  5. #5
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544
    Originariamente inviato da Xinod
    spiega meglio "continua a uscire l'alert"
    Si, esce l'alert ma se io tento di toglierlo appare di nuovo, per risolvere devo chiudere il browser e riaprirlo.

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ah, probabilmente perche' continua a scattare il blur

    secondo me dovresti rivedere la logica
    puo' bastarti lasciare marcato il campo senza lanciare ulteriori alert?

    comunque sia assegna una classe piuttosto che un background, perche' e' piu' facile testare contro una classe che un colore
    codice:
    if (parole.test(campo.value)) {
      if(campo.className!='error'){
        campo.className='error'
        alert("La parola \"" + campo.value.match(parole)[0] + "\" non è ammessa.");
        campo.focus();
      }
      return false // come usi la funzione al momento questo return false non serve a niente
      // cosi' come, nei browser seri, il focus che provi a dare poco piu' su
    }

  7. #7
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544
    Così non esce nemmeno alert, ho creato una classe .error { color: red}

    Quello originale funzionava, in più quando usciva alert e lo sfondo diventava rosso, poi nel momento che cancellavo la parola proibita lo sfondo ritornava bianco

  8. #8
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    a me, quello che hai postato modificato come l' ho modificato, funzionerebbe

    ciao

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.