无法首字母大写,元素未更新

时间:2014-02-21 01:12:54

标签: javascript html string

我从像这样的textBox中获取我的字符串(在索引递增的循环中):

var name = document.getElementById("TextBox" + index).value;

我的脚本中有一个函数看起来像是大写的第一个字母:

function capital(string)
{
    return string.charAt(0).toUpperCase() + string.slice(1);
}

并试着像这样使用它:

var name = document.getElementById("TextBox" + index).value;
capital(name);

它们在同一script标记中具有不同的功能。我哪里错了?

3 个答案:

答案 0 :(得分:5)

确保将修改后的值分配回控件:

var element = document.getElementById("TextBox" + index);
var name = element.value;
element.value = capital(name);

答案 1 :(得分:0)

字符串在js中是不可变的,您需要重新分配。

var name = capital(document.getElementById("TextBox" + index).value);

Plus字符串按值传递,因此它们被复制到新函数。因此,无论你在函数中做什么都不会对你的名字变量产生任何影响。

答案 2 :(得分:0)

您是否尝试使用输入类型getElementById,或者您的文本框中是否有名为“TextBox”的实际ID?以下工作正常,see fiddle

var index = 1;

var name = document.getElementById("test" + index).value;

function capital(str)
{
    return str.charAt(0).toUpperCase() + str.slice(1);
}

alert(capital(name));