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

    [javascript] : script ostico

    salve mi sono scaricato questo script DDV ma non riesco a farlo funzionare...

    cioè lo includo nella parte <head> della pagina html e lo uso nel form ma non mi si attiva nessuno script...qualcuno sa dirmi come si usa?
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  2. #2
    va bene ve lo posto tutto senno non ve lo scaricate per paura di chissa che virus...

    codice:
    /*************************************************************************
    ' DDV - Declarative Data Validation
    ' Versione 1.0
    ' Copyright (C) 2004 - Manthys
    '
    ' Questo script è fornito con licenza Open Source.
    ' E' possibile distribuirlo e/o modificarlo rispettando i termini 
    ' della licenza LGPL (http://www.gnu.org/licenses/lgpl.html).
    '
    ' Questo script è distribuito SENZA ALCUNA GARANZIA esplicita o implicita.
    ' Consultare la licenza LGPL per maggiori dettagli (licenza.txt).
    '
    ' Per informazioni contattare:
    ' Manthys - Consulenza Informatica
    ' Via F.lli Rosselli, 32/C - 56123 PISA - ITALY
    '
    ' http://www.manthys.it
    ' http://ddv.manthys.it
    ' ddv@manthys.it
    '
    '*************************************************************************
    
    /*==================================================
    
    FUNZIONE: formValidate()
    
    DESCRIZIONE:
    Convalida i campi di una form sfruttando la funzione fieldValidate().
    Nel caso in cui sia specificato il secondo parametro, viene valutata
    l'espressione dopo aver validato tutti i campi della form
    
    INPUT:
    form = 	l'oggetto che rappresenta la form corrente
    func = 	espressione di tipo stringa che rappresenta l'eventuale 
    	espressione aggiuntiva da valutare al termine della validazione;
    	questo parametro è opzionale
    	
    OUTPUT:
    La funzione restituisce un valore booleano; è responsabilità dell programmatore
    fare in modo che l'eventuale espressione aggiuntiva sia di tipo booleano
    
    ==================================================*/
    
    function formValidate(form, func) 
    {
    	var i
    	var fields = form.elements
    	var l = fields.length
    	var valid = false
    
    	for (i = 0; i < l; i++) 	
    	{
    		valid = fieldValidate(fields[i])
    		if (!valid) {
    			alert ( "Alcuni Campi non sono corretti");
    		}
    	}
    
    	if (func != null) 
    	{
    		return eval(func)
    	}	 
    	else 
    	{
    		return true
    	}
    }
    
    
    
    /*==================================================
    
    FUNZIONE: fieldValidate()
    
    DESCRIZIONE:
    Convalida un campo di una form in base alla presenza dei seguenti attributi
    pseudo-HTML:
    
    	ddv-maxlength	Indica il numero massimo di caratteri consentito
    	ddv-minlength	Indica il minimo numero di caratteri previsto
    	ddv-required	Indica se un campo è obbligatorio (true) o meno (false)
    	ddv-type		Indica il tipo di dato previsto per il campo (numeric, date)
    	ddv-regexp		Indica l'espressione regolare in base a cui il campo si considera valido
    
    	ddv-dateformat	Indica il formato della data da considerare valido (en/it - valore predefinito = en)
    			L'attributo è preso in considerazione soltanto in combinazione con ddv-type="date"
    
    Nel caso in cui sia specificato il secondo parametro, viene valutata
    l'espressione dopo aver validato il campo
    
    INPUT:
    field =	l'oggetto che rappresenta il campo da validare
    func = 	espressione di tipo stringa che rappresenta l'eventuale 
    	espressione aggiuntiva da valutare al termine della validazione;
    	questo parametro è opzionale
    	
    OUTPUT:
    La funzione restituisce un valore booleano; è responsabilità dell programmatore
    fare in modo che l'eventuale espressione aggiuntiva sia di tipo booleano
    
    ==================================================*/
    
    function fieldValidate(field, func) {
    
    //ddv-maxlength
    if (field.attributes["ddv-maxlength"] != null) {
    	if (field.value.length > field.attributes["ddv-maxlength"].value) {
    		alert("Le dimensioni del campo non possono superare " + field.attributes["ddv-maxlength"].value + " caratteri!")
    		field.focus()
    		return false
    	}
    }
    
    //ddv-minlength
    if (field.attributes["ddv-minlength"] != null) {
    	if ((field.value.length < field.attributes["ddv-minlength"].value) && (field.value.length != 0)) {
    		alert("Le dimensioni del campo devono essere di almeno " + field.attributes["ddv-minlength"].value + " caratteri!")
    		field.focus()
    		return false
    	}
    }
    //ddv-equal
    if (field.attributes["ddv-equal"] != null) {
    	if ((field.value != field.attributes["ddv-equal"].value ) && (field.value.length !=0 ) {
    		alert ("I campi "+ field +" e "+field.attributes["ddv-equal"]+"non sono uguali")
    		field.focus()
    		return false
    	}
    }
    
    //ddv-required
    if (field.attributes["ddv-required"] != null) {
    	if ((field.attributes["ddv-required"].value) && (isBlank(field.value))) {
    		alert("L'inserimento di un valore nel campo è obbligatorio!")
    		field.focus()
    		return false
    	}
    }
    
    //ddv-type
    if (field.attributes["ddv-type"] != null) {
    	//Numeric data type validation
    	if ((field.attributes["ddv-type"].value.toLowerCase() == "numeric") && isNaN(field.value)) {
    		alert("Il campo prevede un valore numerico!")
    		field.focus()
    		return false
    	}
    
    	//Date data type validation
    	if (field.attributes["ddv-type"].value.toLowerCase() == "date") {
    		var DateFormat = "en"
    		
    		if (field.attributes["ddv-dateformat"] != null) {
    			DateFormat = field.attributes["ddv-dateformat"].value.toLowerCase()
    		}
    		
    		if (!verifyDateFormat(field.value, DateFormat)) {
    			alert("Il campo prevede una valore di tipo data!")
    			field.focus()
    			return false
    		}
    	}
    }
    
    //ddv-regexp
    if (field.attributes["ddv-regexp"] != null) {
    	var re = new RegExp("^" + field.attributes["ddv-regexp"].value + "$")
    	
    	if (field.value.match(re) == null) {
    		alert("Il valore inserito non rispetta il formato previsto!")
    		field.focus()
    		return false
    	}
    }
    
    if (func != null) {
    	return eval(func)
    } else {
    	return true
    }
    }
    
    
    
    
    /*==================================================
    
    FUNZIONE: verifyDateFormat()
    
    DESCRIZIONE:
    Verifica la validità di una data in base al formato specificato.
    
    INPUT:
    DateString =	stringa che rappresenta la data da verificare
    Format = 	stringa che rappresenta il formato della data in base al quale verificarla;
    		sono previsti due formati:
    			en	formato inglese (mm/gg/aaaa)
    			it	formato italiano (gg/mm/aaaa)
    
    OUTPUT:
    La funzione restituisce true se la data è valida; false altrimenti.
    
    ==================================================*/
    
    function verifyDateFormat(DateString, DateFormat) {
    var match
    var tmpDate
    var validFormat = false
    
    try {
    	match = DateString.match(/^(\d?\d)\D(\d?\d)\D(\d{4}|\d{2})$/)
    
    	if (match != null) {
    		if (DateFormat == "en") {
    			tmpDate = new Date(match[3], match[1] - 1, match[2])
    			validFormat = ((tmpDate.getMonth()==match[1]-1) && (tmpDate.getDate()==match[2]))
    		} else {
    			tmpDate = new Date(match[3], match[2] - 1, match[1])
    			validFormat = ((tmpDate.getMonth()==match[2]-1) && (tmpDate.getDate()==match[1]))
    		}
    	}
    }
    catch (e) {
    	alert(e.message)
    }
    finally {
    	return validFormat
    }
    }
    
    /*==================================================
    
    FUNZIONE: setConstraint()
    
    DESCRIZIONE:
    Imposta dinamicamente un attributo di validazione.
    
    INPUT:
    element =	stringa che indica l'ID dell'elemento
    		a cui applicare il vincolo di validazione
    		
    attribute = 	stringa che indica il nome dell'attributo pseudo-HTML
    		da impostare
    		
    value = 	stringa che indica il valore da assegnare all'attributo
    		pseudo-HTML specificato nel parametro attribute
    
    ==================================================*/
    
    function setConstraint(element, attribute, value) {
    var elem;
    var attr;
    
    elem = document.getElementById(element);
    
    if (elem != null) {
    	attr = document.createAttribute(attribute);
    	attr.value = value;
    	elem.setAttributeNode(attr)
    }
    }
    
    
    
    function isBlank( cArg )
    {
    while ( cArg.length > 0 && cArg.charAt( cArg.length - 1 ) == " " ) {
    	cArg = cArg.substring( 0, cArg.length - 1 );
    	}
    return cArg == "";
    vi prego aiutatemi..come lodevo usare questo script
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  3. #3
    nessuno lo sa?(up)
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  4. #4
    prova ad esempio con

    <form onsubmit="formValidate(this)">
    <input type="text" ddv-maxlength="5" />
    <input type="submit" />
    </form>

    se ho capito bene, devi aggiungere quegli attributi con prefisso ddv- agli elementi input, e con questo perdi la validazione html


    p.s. scua,ma non facevi prima a mandare un e-mail a chi ha scritto lo script?

  5. #5
    ho provato ma ancora non mi riponde così se qualcuno può aiutarmi nel frattempo...

    io faccio così :
    codice:
    <html>
    
       <head>
       ...
          <script src="/cartella/ddv.js" type="text/javascript"></script>
       </head>
       <form name="esempio" method="post" action="#" onsubmit="return formValidate(this)" >
    
         <input type="text" name="nome" ddv-required="true" >
         <input type="text" name="cognome" ddv-required="true" >
         <input type="submit" name="invia" value="invia dati" >
       </form>
       ...
    </html>
    ma non mi funziona...o meglio lascio i campi vuoti e clicco submit ma niente non mi avverte...
    tu che dici, dove sbaglio?
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  6. #6
    il codice che hai postato contiene un paio di errori di sintassi,correggendoli lo script sembra funzionare, in realtà la console js di firefox mi dà degli errori di accesso negato...
    cmq alla riga 124 manca una ),e alla fine dello script manca una graffa a chiudere la funzione isBlank(probabilmente hai sbagliato tu a fare copia-incolla)

  7. #7
    ma dove manca la parentesi..alla 124 mi sembra che ci sia!
    specifica la riga scrivendola per piacere..grazie
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  8. #8
    if ((field.value != field.attributes["ddv-equal"].value ) && (field.value.length !=0 )

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.