Javascript:this.value函数不起作用

Tim*_*her 1 html javascript input function

好的,我有以下功能:

function hideValue(value) {
    if (this.value == value) {
       this.value = '';
}
Run Code Online (Sandbox Code Playgroud)

以下表格字段:

<input onfocus="hideValue('First Name')" type="text" name="first_name" value="First Name">
Run Code Online (Sandbox Code Playgroud)

我无法获得隐藏值的功能.当我alert(value);在函数中时,它返回正确的值.

我也有一个showValue函数,它正好相反.为什么这些不起作用?

sle*_*man 5

在DOM元素上的事件处理程序中,this仅在函数的第一级引用该元素.因此你需要传递this给函数:

<input
  onfocus="hideValue(this,'First Name') /* 'this' is only correct here */"
  type="text" name="first_name" value="First Name"
>
Run Code Online (Sandbox Code Playgroud)

因此,该函数应修改为:

function hideValue(element, value) {
  if (element.value == value) {
    element.value = '';
  }
}
Run Code Online (Sandbox Code Playgroud)