2014-02-21 19 views
1

我得到我的字符串這樣從一個文本框(在指數遞增的循環):不能大寫首字母,元素不更新

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標籤相同。我哪裏錯了?

+0

以及以票面價值,這似乎合法的..你在哪裏試圖實際應用的變化,'資本(名稱)'的返回結果? –

+0

您是否正在嘗試使用輸入類型的'getElementById',或者您的文本框中是否有名爲「TextBox」的實際ID? – Popo

回答

5

確保分配修改後的值回控制:

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

像一個魅力工作 –

0

字符串是JS不可變的,你需要重新分配。

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

Plus字符串按值傳遞,所以它們被複制到新函數中。所以無論你在函數中做什麼都不會在你的名字變量中產生任何影響。

0

您是否正在嘗試使用輸入類型獲取ElementById,或者您的文本框中是否有名爲「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));