2010-03-13 19 views
7

He creado dos archivos JavaScript. Un archivo es "validators.js" y otro es "UserValidations.js".JavaScript en varios archivos

Este es el código para validators.js

function isBlankString(value) { 
    if (value.replace(/\s/g, "") == "") { 
     return true; 

    } else { 
     return false; 
    } 
} 

en el archivo js otra función que he definido para validar el nombre de usuario como este.

function validateUsername(element) { 

    var username = element.value; 

    if(value.replace(/\s/g, "") == ""){ 
     //nothing to validate 
     return; 
    }else{ 
     //validation logic 
    } 

} 

Ahora bien, como es obvio i debería haber utilizado método isBlankString (valor) para comprobar longitud de cadena. Pero no tengo ni idea de cómo puedo usar la función definida en otro archivo.

Respuesta

6

Asegúrese de que incluye el archivo de validators.js primero en la página:

<script src="validators.js"></script> 

Ahora puede utilizar la función de que normalmente:

function validateUsername(element) { 

    var username = element.value; 

    if(isBlankString(value)){ 
     //nothing to validate 
     return; 
    }else{ 
     //validation logic 
    } 

} 
+1

embargo, esto no tiene una buena lectura js archivo. No será un archivo de código bien comprensible. Si alguna vez olvida agregar un archivo, las cosas se arruinarán. –

+0

Acabo de dar un ejemplo; el punto es que validtors.js debería estar en la parte superior. – Sarfraz

+0

¿Qué otras formas existen para hacer esto? –

11

El archivo que proporciona la función debe estar incluido, en su documento HTML, antes de que la función se use realmente.

Lo que significa que, sin duda, validators.js debe incluirse antes UserValidations.js:

<script src="validators.js" type="text/javascript"></script> 
<script src="UserValidations.js" type="text/javascript"></script> 
0

I usted está en un archivo HTML basta con incluir dos archivos en el código HTML.

1

Siempre y cuando usted tiene dos archivos que incluyen solo puede llamarlo. JavaScript no tiene un concepto real de espacios de nombres de qué preocuparse. Puede considerar combinar los archivos en uno ya que ahorra en el número de solicitudes HTTP enviadas al servidor.

+0

JavaScript aplica ámbito a las variables y declaraciones de funciones, pero no hay un alcance predeterminado por archivo. –

0

Simplemente incluya ambos archivos en su página html y llame a funciones cuando lo necesite. Nada difícil y difícil. O utilice dos de estas funciones en un archivo

3

Como nota al margen, su función isBlankString es excesivamente detallada. Considere reemplazarla con la siguiente

function isBlankString(value) { 
    return value.replace(/\s+/g, "").length == ""; 
    // or even: return value.replace(/\s+/g, "").length == 0; 
} 

El if declaración de que usted es completamente innecesario.

2

Más importante aún, está definiendo ambas funciones en el objeto ventana. Su mejor globalmente a proteger sus funciones mediante la creación de su propio espacio de nombres:

function isBlankString(value) { 
    if (value.replace(/\s/g, "") == "") { 
     return true; 

    } else { 
     return false; 
    } 
} 

usted debe poner todos sus objetos en su propio espacio de nombres como

Sarfraz.isBlankString = function (value) { 
    if (value.replace(/\s/g, "") == "") { 
     return true; 

    } else { 
     return false; 
    } 
} 

Así como la otra función. En realidad, actualmente se definen como window.isBlankString. Si carga el JavaScript de otras personas en su página, es mucho más probable que se sobrescriba.

Para su pregunta principal, ambos deben cargarse antes de ejecutar cualquiera. Examine el uso de jQuery y la funcionalidad $ (document) .ready.

Siempre cargue primero sus scripts y luego ejecútelos. Cargar y ejecutar simultáneamente invita al desastre y generalmente no es necesario.De esta forma, no necesita preocuparse por el orden en que los coloca en el archivo.

Cuestiones relacionadas