我想将JavaScript函数<script>从输入标记移动到标记,但它不起作用.
这有效:
<input type="text" name="aaa" id="aaa" onkeyup="javascript:this.value=
this.value.substring(0,1).toUpperCase()+
this.value.substring(1,this.value.length);
if (this.value=='')
document.getElementById('aaaLabel').innerHTML='AAA';"
/>
Run Code Online (Sandbox Code Playgroud)
这不是:
<script type="text/javascript">
function FieldOnKeyUp() {
this.value=this.value.substring(0,1).toUpperCase()+
this.value.substring(1,this.value.length);
if (this.value=='')
document.getElementById('aaaLabel').innerHTML='AAA';
}
</script>
Run Code Online (Sandbox Code Playgroud)
<input type="text" name="aaa" id="aaa" onkeyup="FieldOnKeyUp()">
Run Code Online (Sandbox Code Playgroud)
有什么不同?
值this不会传递给您的单独函数.实际上,this在你的函数中设置了window对象.您需要更改为此类型的代码才能将正确的值传递给您的函数:
<input type="text" name="aaa" id="aaa" onkeyup="FieldOnKeyUp(this)">
Run Code Online (Sandbox Code Playgroud)
和你的代码:
<script type="text/javascript">
function FieldOnKeyUp(el) {
el.value=el.value.substring(0,1).toUpperCase()+el.value.substring(1);
if (el.value=='') {
document.getElementById('aaaLabel').innerHTML='AAA';
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
这是一个显示此代码的示例:http://jsfiddle.net/jfriend00/2dJ6x/.
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |