动态更改验证码语言

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
文件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只在函数内部有新值,但在函数外部它仍然是旧值。祝一切顺利!

这个可以工作,但我的问题是我正在通过传递基于页面语言的语言变量从另一个脚本调用此函数。例如:changeCaptchaLang(pageLanguage)或其他。如果我在这里将fr作为语言传递,则我的传递语言将被忽略,因为它将默认为法语。 - NepCoder
@NepCoder 我修改了代码。这是你想要做的吗?我不确定我是否正确理解了你的问题,我尝试猜测。 - Gynteniuxas
非常抱歉我表达不太清楚,但这个方案可行且正是我一直在寻找的。非常感谢您的耐心和帮助。 - NepCoder
我很高兴能够帮助你! - Gynteniuxas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接