2010-03-13 56 views
7

我創建了兩個JavaScript文件。一個文件是「validators.js」,另一個文件是「UserValidations.js」。多個文件中的JavaScript

這裏是validators.js

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

    } else { 
     return false; 
    } 
} 

在其他js文件我已經用於驗證用戶名這樣定義函數的代碼。

function validateUsername(element) { 

    var username = element.value; 

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

} 

現在,因爲很明顯我應該使用isBlankString(value)方法來檢查字符串長度。但我不太瞭解如何使用其他文件中定義的函數?

回答

6

請確保您首先包括在頁面上validators.js文件:

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

現在你可以使用的,通常的功能:

function validateUsername(element) { 

    var username = element.value; 

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

} 
+1

但是,這並不成爲一個好可讀js文件。它不會是很好理解的代碼文件。如果有時忘記添加一個文件,事情將被擰緊。 –

+0

我剛剛舉了一個例子,重點是validtors.js應該是最重要的。 – Sarfraz

+0

還有什麼其他方式可以完成這項工作? –

11

在實際使用函數之前,必須在您的HTML文檔中包含提供函數的文件。

這意味着,可以肯定,validators.js應包括UserValidations.js前:

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

我你是在一個HTML文件只是在HTML這兩個文件。

1

只要你有這兩個文件包含你可以調用它。 JavaScript沒有真正的命名空間概念。您可以考慮將這些文件合併爲一個文件,因爲它可以節省發送到服務器的http請求數量。

+0

JavaScript將範圍應用於變量和函數聲明,但每個文件沒有默認範圍。 –

0

只需將兩個文件包含到您的html頁面並在需要時調用函數即可。沒有困難和困難。或者在一個文件中使用這兩個函數

3

作爲一個附註,您的isBlankString函數過於冗長。考慮與你完全沒有必要以下

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

if語句替換它。

2

更重要的是,你正在窗口對象中定義你的兩個函數。它的最好全局創建自己的命名空間保護功能:

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

    } else { 
     return false; 
    } 
} 

你應該把你所有的物體在自己的名稱空間像

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

    } else { 
     return false; 
    } 
} 

還有其他功能。實際上,它們目前被定義爲window.isBlankString。如果將其他人的javaScript加載到頁面中,則很可能會被覆蓋。

對於你的主要問題,兩者都應該在你執行之前加載。看看使用jQuery和$(document).ready功能。

總是先加載腳本,然後執行。加載和執行同時引發災難,通常不是必需的。這樣,你不必擔心你把它們放在文件中的順序。