2017-06-01 69 views
1

我看不到我在哪裏出錯了。我的代碼是...大寫輸入的文字的第一個字符

function firstC() 
    { 
     var x = document.getElementsByClassName("uValue"); 

     for(var i = 0; i < x.length; i++) { 
      x.value.charAt(0).toUpperCase(); 
     } 
    } 

它是由...

<td><input type="text" name="firstname" value="(required)" id="firstName" class="uValue" onclick="empty(this.id)" onblur="firstC()" /></td> 

empty()功能通過移除輸入框中的值,如果「(必需)」,其值正常工作叫,但我不能讓firstC()函數大寫任何輸入的第一個字符。

編輯:我使用getElementsByClassName,因爲有多個輸入框,我試圖允許使用相同的功能。

回答

2

你忘了指定值回

function firstC() 
    { 
     var x = document.getElementsByClassName("uValue"); 

     for(var i = 0; i < x.length; i++) { 
      x[i].value = x[i].value.charAt(0).toUpperCase() + x[i].value.substr(1); 
     } 
    } 
+0

仍然不會工作:( – JavaNovice

+0

對不起,你錯過了索引太:-)(固定在答案) – Nosyara

+0

啊該死!我需要更頻繁地來這裏,很久之前我花了幾個小時來攢下腦袋。這工作 - 非常感謝! :d – JavaNovice

2

而應該通過this到您的內聯JS eventers:

onclick="empty(this)" onblur="firstC(this)" 

function empty(el) { // el now refers to the this referrer 
 
    el.value=""; 
 
} 
 

 
function firstC(el) { 
 
    var val = el.value; 
 
    el.value = val.charAt(0).toUpperCase() + val.substr(1); 
 
}
<input type="text" onclick="empty(this)" onblur="firstC(this)" value="(required)" id="firstName" class="uValue" name="firstname">

PS:不要忘了,而是採用empty()value="(required)"你可以簡單地使用placeholder attribu TE

placeholder="(required)" 
+0

謝謝您的回答。很高興看到替代方法來做事情,我也測試了這個,所以我知道它的工作原理:)。謝謝你的佔位符! – JavaNovice

+0

非常歡迎Matt!快樂的編碼! –

相關問題