JavaScript在Internet Explorer中不工作

JavaScript在Internet Explorer中不工作,javascript,Javascript,我目前正在网页上设置用户名/密码输入的样式。它们在Firefox/Safari中正常工作,但Internet Explorer抛出以下错误: 行:7,字符:2,需要反对 当我把注意力集中在我的输入上时就会发生这种情况。此函数称为onfocus: function InputFocused(InputID) { var InputObject = document.getElementById(InputID); DefaultValue = InputObject.value;

我目前正在网页上设置用户名/密码输入的样式。它们在Firefox/Safari中正常工作,但Internet Explorer抛出以下错误:

行:7,字符:2,需要反对

当我把注意力集中在我的输入上时就会发生这种情况。此函数称为onfocus:

function InputFocused(InputID)
{
    var InputObject = document.getElementById(InputID);
    DefaultValue = InputObject.value;
    InputObject.value = "";
    InputObject.style.color = "#000";
}
这是标记:

<input type="text" class="login" id="username" value="USERNAME" onfocus="InputFocused(this.id)" onblur="InputBlurred(this.id)" />

我认为这很简单,但我对JavaScript的经验非常少,所以如果有任何见解,我将不胜感激。

我认为

<input type="text" class="login" "id="username" value="USERNAME" onfocus="InputFocused(this.id)" onblur="InputBlurred(this.id)" />
我认为

<input type="text" class="login" "id="username" value="USERNAME" onfocus="InputFocused(this.id)" onblur="InputBlurred(this.id)" />

您可能希望通过
alert
输入
InputID
的值来添加健全性检查。html出现问题(
“id=
而不是
id=
),但这可能只是快速复制/粘贴的结果


另外:我注意到您正在传递id属性的值,然后查找元素,而不是直接传递对元素的引用。

您可能希望通过
alert
ing
InputID
的值来添加健全性检查。html有问题(
“id=
而不是
id=
)但这可能只是快速复制/粘贴的结果


另外:我注意到您正在传递id属性的值,然后查找元素,而不是直接传递对元素的引用。

您使用的是什么版本的IE

我想,问题是,当您指定onfocus=“InputFocused(this.id)”时,我不确定IE是否知道它的当前上下文是什么,我猜应该是这样的,因为DOM尚未完成构建

通过解决方案和解释,您可以像这样实现您的目标:

<input type="text" class="login" "id="username" value="USERNAME" onfocus="InputFocused(this)" onblur="InputBlurred(this)" />
HTML:

我遗漏了您的DefaultValue位,因为我没有完全意识到您试图用它做什么。
我还没有测试过代码,如果代码不起作用,很抱歉。您可以通过封装在函数等中来改进这一切,但这可能有点离题了

您使用的是什么版本的IE

我想,问题是,当您指定onfocus=“InputFocused(this.id)”时,我不确定IE是否知道它的当前上下文是什么,我猜应该是这样的,因为DOM尚未完成构建

通过解决方案和解释,您可以像这样实现您的目标:

<input type="text" class="login" "id="username" value="USERNAME" onfocus="InputFocused(this)" onblur="InputBlurred(this)" />
HTML:

我遗漏了您的DefaultValue位,因为我没有完全意识到您试图用它做什么。
我还没有测试过代码,如果代码不起作用,很抱歉。您可以通过封装在函数等中来改进这一切,但这可能有点离题了

我想你最好的办法就是这样做

   function InputFocused(DOM_OBJECT)
    {
        DefaultValue = DOM_OBJECT.value;
        DOM_OBJECT.value = "";
        DOM_OBJECT.style.color = "#000";
    }
而您的HTML将如下所示:

<input type="text" class="login" "id="username" value="USERNAME" onfocus="InputFocused(this)" onblur="InputBlurred(this)" />

我想你最好的办法就是这样做

   function InputFocused(DOM_OBJECT)
    {
        DefaultValue = DOM_OBJECT.value;
        DOM_OBJECT.value = "";
        DOM_OBJECT.style.color = "#000";
    }
而您的HTML将如下所示:

<input type="text" class="login" "id="username" value="USERNAME" onfocus="InputFocused(this)" onblur="InputBlurred(this)" />


请将用于连接
onfocus
的代码发布到此函数。请将用于连接
onfocus
的代码发布到此函数。我的印象是两者完全相同。不是吗?除了放错的“。放错的引号可能会导致严重的错误。始终使用验证器。放错的引号不在我的实际代码中,只是在我粘贴到这里的代码片段中。我的问题是关于这个与“用户名”的比较。我的印象是两者完全相同。它们不是吗?除了放错的“.错误的报价可能会导致严重的错误。始终使用验证器。放错地方的引号不在我的实际代码中,只是在我粘贴到这里的代码片段中。我的问题是关于这个与“用户名”的对比。虽然它确实有助于使代码更加简洁,但它并不能解决我遇到的问题。不过谢谢你的提示,我已经实现了这个建议。事实上,它解决了IE的问题,我只是忘了在再次检查页面之前清除缓存。谢谢知道为什么传递this.id会抛出错误,但是传递对象引用没有问题吗?我不知道为什么。我已经使用了您的代码,并且两个版本都可以使用。虽然它确实有助于使代码更加简洁,但它并不能解决我遇到的问题。不过谢谢你的提示,我已经实现了这个建议。事实上,它解决了IE的问题,我只是忘了在再次检查页面之前清除缓存。谢谢知道为什么传递this.id会抛出错误,但是传递对象引用没有问题吗?我不知道为什么。我已经使用了你的代码,并且两个版本都可以使用。事实上,第一点只是我的粘贴错误。我现在传递的是引用,而不是ID,我看到它如何使事情变得更简洁。谢谢。事实上,第一点只是我的粘贴错误。我现在传递的是引用,而不是ID,我看到它如何使事情变得更简洁。谢谢。我正在使用IE7,现在正在将对对象的引用传递到我的JS函数中,而不仅仅是ID,所以这不应该是上下文问题。我正在使用IE7,现在正在将对对象的引用传递到我的JS函数中,而不仅仅是ID,所以这不应该是上下文问题。