Я не вижу, с чем я ошибаюсь. Мой код...
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()
функцию firstC()
использовать первый символ любого ввода.
EDIT: Я использую getElementsByClassName
поскольку есть несколько ящиков ввода, которые я пытаюсь разрешить использовать одну и ту же функцию.
Вы забыли присвоить значение обратно
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);
}
}
Вместо this
вы должны передать this
в свои встроенные JS-события:
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
placeholder="(required)"