2016-04-30 4 views
4

У меня возникли проблемы с областью переменных displayLang. Я хотел бы использовать значение внутри функции, но он продолжает использовать глобальный. Любая помощь будет оценена. Спасибо.change captcha language динамически

Я вызываю эту функцию из другого скрипта, такого как 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