尝试使用getElementsByName选择多个“时出错”;占位符;(JavaScript)

尝试使用getElementsByName选择多个“时出错”;占位符;(JavaScript),javascript,Javascript,我的这个脚本有一个函数,它不是按我希望的方式工作的。看一下脚本,函数名为display_Value(): JavaScript 你好。您输入的值为:并在下面重复 函数noValue()和changeValue()使原始值在焦点上消失,如果蓝色字段为空,则返回。那部分有效。单击按钮时,文本框中的值应显示在-标记中。那是不会发生的。使用隐藏的隐藏文本会按我的要求显示,但不会显示值。表单被破坏了,就像我想的那样。我哪里出错了?:) 注:如果你想知道“Skriv dit navn her”是什么

我的这个脚本有一个函数,它不是按我希望的方式工作的。看一下脚本,函数名为display_Value():


JavaScript
你好。您输入的值为:并在下面重复

函数noValue()和changeValue()使原始值在焦点上消失,如果蓝色字段为空,则返回。那部分有效。单击按钮时,文本框中的值应显示在
-标记中。那是不会发生的。使用
隐藏的隐藏文本会按我的要求显示,但不会显示值。表单被破坏了,就像我想的那样。我哪里出错了?:)

注:如果你想知道“Skriv dit navn her”是什么意思,它在丹麦语中的意思是“在这里写下你的名字”

编辑 我再次隔离了部分代码。我发现,如果我替换
getElementsByName(“占位符”).innerHTML带有
getElementById(“占位符”).innerHTML
并用ID=“placeholder”指定第一个
,该值显示在特定的
中。然而,这并不是我想要的。我想在所有3个占位符中显示该值-如何显示?

另一次编辑
我知道将ID分配给所有占位符可以使这个脚本工作;我对此不感兴趣。我希望函数以尽可能少的文本显示所有占位符中的值,并且不重复。我认为这就是所谓的干/死:)

用以下内容替换显示值功能:

function display_Value() { 
    var val = document.getElementById("txt").value; 
    if (val != "Skriv dit navn her" && val != "") { 
        document.getElementsByName("placeholder").innerHTML = val; 
        document.getElementById("hidden").style.visibility="visible"; 
        destroy("destroy") 
    } 
} 

您获取的是占位符的值,而不是对它的引用。因此,价值没有任何意义。您需要将其直接分配给占位符的innerHTML。

将显示值函数替换为:

function display_Value() { 
    var val = document.getElementById("txt").value; 
    if (val != "Skriv dit navn her" && val != "") { 
        document.getElementsByName("placeholder").innerHTML = val; 
        document.getElementById("hidden").style.visibility="visible"; 
        destroy("destroy") 
    } 
} 

您获取的是占位符的值,而不是对它的引用。因此,价值没有任何意义。您需要将其直接分配给占位符的innerHTML。

document.getElementById只返回一个元素。一个Id应该是唯一的,并且不会在三个标签上重复

因此,您可以为您的3个跨度指定3个不同的ID,并使用3行不同的javascript代码设置值

或者,您可以使用jQuery之类的工具,并为您的跨度提供一个类:

<span class="placeholder" />

document.getElementById只返回一个元素。一个Id应该是唯一的,并且不会在三个标签上重复

因此,您可以为您的3个跨度指定3个不同的ID,并使用3行不同的javascript代码设置值

或者,您可以使用jQuery之类的工具,并为您的跨度提供一个类:

<span class="placeholder" />


您可以通过删除可用的部分来减少代码,直到只剩下不可用的部分。另外,关于javascript的那些评论在一代人之前就已经过时了,我想我知道,我只是为了确保:)一些奇怪的人仍然手动关闭javascript:)作为对第一件事的回应,你写道——我做到了!我仍然找不到所有出错的源代码…您可以通过删除可用的部分来减少代码,直到只剩下不可用的部分。另外,关于javascript的那些评论在一代人之前就已经过时了,我想我知道,我只是为了确保:)一些奇怪的人仍然手动关闭javascript:)作为对第一件事的回应,你写道——我做到了!我仍然找不到出错的来源…尝试在
var val
行之后添加警报<代码>警报(val)。。有价值吗?是的,这很奇怪。。。我认为错误可能在getElementsByName(“占位符”)中。innerHTML行(检查我的更新以获得“证明”)您可以只使用ID。。我甚至没有注意到。使用真实的ID和GetElementById在这个脚本中会有很多占位符,为它们使用ID都需要一行脚本;我想避免:)你知道任何。。。嗯,它叫什么?方法?对于返回多个元素的document对象,就像getElementsByName一样?您希望获取一个字符串并同时将其放入所有占位符中?。。。我不确定这是否有意义。您应该查看jQuery,我将不再使用它。请尝试在
var-val
行之后添加警报<代码>警报(val)。。有价值吗?是的,这很奇怪。。。我认为错误可能在getElementsByName(“占位符”)中。innerHTML行(检查我的更新以获得“证明”)您可以只使用ID。。我甚至没有注意到。使用真实的ID和GetElementById在这个脚本中会有很多占位符,为它们使用ID都需要一行脚本;我想避免:)你知道任何。。。嗯,它叫什么?方法?对于返回多个元素的document对象,就像getElementsByName一样?您希望获取一个字符串并同时将其放入所有占位符中?。。。我不确定这是否有意义。你应该看看jQuery,这是我将要用到的所有东西。我在这里看到了优点和缺点。首先:我想避免使用jquery。第二:在这个脚本中还有很多其他占位符,所以我想避免使用id来表示它们;这会使整个脚本有点不可读…我在这里看到了优点和缺点。首先:我想避免使用jquery。第二:在这个脚本中还有很多其他占位符,所以我想避免使用id来表示它们;这会使整个脚本有点不可读。。。