我无法看到我在哪里出错了。我的代码是......
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()
函数通过删除输入框的值来正常工作,如果它的值是&#34;(必需)&#34;,但是我无法获得firstC()
函数来大写任何输入的第一个字符。
编辑:我正在使用getElementsByClassName
因为有多个输入框我试图允许它使用相同的功能。
答案 0 :(得分:2)
您应该将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);
}
&#13;
<input type="text" onclick="empty(this)" onblur="firstC(this)" value="(required)" id="firstName" class="uValue" name="firstname">
&#13;
P.S:不要忘记,不要使用empty()
和value="(required)"
,而只需使用placeholder
属性
placeholder="(required)"
答案 1 :(得分: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);
}
}