2016-04-30 91 views
4

我在這裏遇到了displayLang變量範圍問題。我想使用函數內部的值,但它繼續使用全局函數。任何幫助將不勝感激。謝謝。動態更改驗證碼語言

我從另一個腳本changeCaptchaLang('FR')調用此函數。

<script type="text/javascript"> 
var displayLang = 'en'; 

function changeCaptchaLang(lang) { 
    displayLang = lang.toLowerCase(); 
} 

var RecaptchaOptions = { 
    theme : 'clean', 
    lang : displayLang, 
} 

回答

1

文件1:

<script type="text/javascript"> 
var lang = 'FR'; 

lang = changeCaptchaLang(lang); 
alert(lang + " " + RecaptchaOptions['lang']); // result: "fr fr" 
</script> 

文件2:

var displayLang = 'EN'; 

var RecaptchaOptions = { 
    theme : 'clean', 
    lang : displayLang, 
} 

function changeCaptchaLang(lang) 
{ 
    displayLang = lang.toLowerCase(); 
    RecaptchaOptions['lang'] = displayLang; 
    return displayLang; 
} 

如果我沒有記錯,displayLang在函數只有在函數新的價值,但在它之外它仍然是相同的舊價值。

讓我知道它是怎麼回事!

+0

這將工作,但我的問題是,我通過傳遞基於頁面語言的語言變量從另一個腳本調用此函數。即。 changeCaptchaLang(pageLanguage)什麼的。如果我在這裏通過fr作爲語言,那麼我通過的語言會被忽略,因爲它將默認爲法語。 – NepCoder

+0

@NepCoder我編輯了代碼。這是你想要做的嗎?我不確定我是否正確理解了你的問題,我試圖猜測。 –

+0

我很抱歉,我不是很清楚,但這個工程,我一直在尋找。非常感謝您的耐心和幫助。 – NepCoder